この記事の例では、左クリックと右クリックの動きを JS で簡単に実装する方法を説明します。皆さんの参考に共有してください。具体的な分析は次のとおりです。
ここでは、右をクリックするとボックスが右に移動し、左をクリックするとボックスが左に移動するという効果を実現できます
setInterval を使用すると、モーション効果を実現するために div をどれくらいの長さと距離で移動する必要があるかを認識できます。
ポイント 1: 要素の左の距離がターゲット距離より小さい場合、要素は正の方向に移動し、それ以外の場合は負の方向に移動します
if(run.offsetLeft <target){ speed = 2; }else{ speed = -2; }
ポイント 2: 要素の左距離がターゲット距離と等しい場合は、タイマーを停止します。それ以外の場合、要素の左距離は、現在の左距離に速度値を加えたものとなります。
if(run.offsetLeft ==target){ clearInterval(timer); } else{ run.style.left = run.offsetLeft +speed +"px"; }
コードをアップロードします
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>无标题文档</title> <style> body{margin:0; padding:0;} #run{width:100px; height:100px; background:#06c; position:absolute; border:1px solid #000; left:0;} </style> <script> window.onload = function(){ var run = document.getElementById("run"); var btn = document.getElementById("btn"); var btn1 = document.getElementById("btn1"); var speed = 2; var timer = null; btn.onclick = function(){ startrun(300); } btn1.onclick = function(){ startrun(0); } function startrun(target){ clearInterval(timer); timer = setInterval(function(){ if(run.offsetLeft <target){ speed = 2; }else{ speed = -2; } if(run.offsetLeft ==target){ clearInterval(timer); } else{ run.style.left = run.offsetLeft +speed +"px"; } },30) } } </script> </head> <body> <input id="btn" type="button" value="运动向右"> <input id="btn1" type="button" value="运动向左"> <div id="run"></div> </body> </html>
この記事が皆様の JavaScript プログラミング設計に役立つことを願っています。