ホームページ >ウェブフロントエンド >jsチュートリアル >サイドバー共有効果を実現するための JavaScript 均一モーション (コード)

サイドバー共有効果を実現するための JavaScript 均一モーション (コード)

不言
不言オリジナル
2018-08-31 09:55:311456ブラウズ

この記事は 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スキル

以上がサイドバー共有効果を実現するための JavaScript 均一モーション (コード)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。