この記事は JavaScript の均一モーションによって実現されるサイドバー共有効果 (コード) に関するもので、必要な方は参考にしていただければ幸いです。
offsetLeft (左からのオブジェクトの距離) に固定速度を加えた値を使用します。
タイマーsetIntervalとclearInterval
を使用して、目標位置に対する現在位置が正か負かで走行速度が正か負かを判断します。
<!DOCTYPE html> <html> <head> <title>用运动做一个侧边栏分享</title> <style> #div1{ width: 150px; height: 200px; background: #0f0; position: absolute; left: -150px; } #div1 span{ position: absolute; width: 20px; height: 60px; line-height: 20px; background: #00f; right: -20px; top: 70px; } </style> <script> window.onload=function(){ var oDiv=document.getElementById("div1"); oDiv.onmouseover=function(){ startMove(10,0); } oDiv.onmouseout=function(){ startMove(-10,-150); } } var timer=null; function startMove(speed,iTarget){ var oDiv=document.getElementById("div1"); clearInterval(timer); timer=setInterval(function(){ if(oDiv.offsetLeft==iTarget){ clearInterval(timer); }else{ oDiv.style.left=oDiv.offsetLeft+speed+"px"; } },30) } </script> </head> <body> <div id="div1"> <span>分享到</span> </div> </body> </html>
コードを書くときは、テストの最適化を実行する必要があります。テストでは互換性の問題はありません。カプセル化された移動関数には 2 つのパラメータがあります。この際、パラメータを簡略化できるかどうかを検討します。
例えば、タクシーに乗るとき、ドライバーに目的地を伝えることはできますが、目的地までの速度をドライバーに伝える必要はないので、パラメーターを 1 つのパラメーターに簡素化できます。具体的なコードは以下の通りです。
<!DOCTYPE html> <html> <head> <title>用运动做一个侧边栏分享</title> <style> #div1{ width: 150px; height: 200px; background: #0f0; position: absolute; left: -150px; } #div1 span{ position: absolute; width: 20px; height: 60px; line-height: 20px; background: #00f; right: -20px; top: 70px; } </style> <script> window.onload=function(){ var oDiv=document.getElementById("div1"); oDiv.onmouseover=function(){ startMove(0); } oDiv.onmouseout=function(){ startMove(-150); } } var timer=null; function startMove(iTarget){ var oDiv=document.getElementById("div1"); clearInterval(timer); timer=setInterval(function(){ var speed=0; if(oDiv.offsetLeft>iTarget){ speed=-10; }else{ speed=10; } if(oDiv.offsetLeft==iTarget){ clearInterval(timer); }else{ oDiv.style.left=oDiv.offsetLeft+speed+"px"; } },30) } </script> </head> <body> <div id="div1"> <span>分享到</span> </div> </body> </html>
関連する推奨事項:
均一なモーションアニメーション効果を実現するネイティブJavaScript_javascriptスキル
以上がサイドバー共有効果を実現するための JavaScript 均一モーション (コード)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。