ホームページ >ウェブフロントエンド >jsチュートリアル >js マウスがタブを通過するときの切り替え遅延を実装するサンプル コードの共有

js マウスがタブを通過するときの切り替え遅延を実装するサンプル コードの共有

黄舟
黄舟オリジナル
2017-03-25 14:43:051429ブラウズ

この記事では主にjsのタブ上をマウスが通過したときの切り替え遅延効果を詳しく紹介します。興味のある方は参考にしてください。

Webエフェクトを閲覧中に偶然見つけました。マウスを誤ってタブ上にスライドさせても切り替わりません。マウスをしばらく押し続けると切り替わります。

個人的に、ユーザーエクスペリエンスは良いと思います: 1. ユーザーがタブをスライドするだけの場合、タブを切り替える必要がない場合、不要な非同期リクエストが発生します。回避; 2. ユーザーが関与していない場合、ページは回避されます。必要に応じてビートを切り替えると、ユーザー エクスペリエンスに影響します。

オンラインでいくつかの方法を調べたところ、次の方法がより簡潔で効果的であることがわかりました。今後の参考のために整理しました。

重要な点はその js コードです。原理は、ホバーを通過するときにタイマーを設定し、切り替えメソッドの実行を遅らせ、離れるときにタイマーをクリアすることです。ホバー時間が遅延時間未満の場合、タイマーはクリアされ、切り替えメソッドは実行されません。スイッチングは、滞留時間が遅延時間よりも長い場合にのみ発生します。これにより、タブ上でスライドして切り替え イベント をトリガーすることを効果的に回避できます。

コードをコピー

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title></title>
    <script type="text/javascript" src="js/jquery.1.11.3.min.js"></script>
    <script>
      $(function() {
        var t_li = $(".tab")
        var c_li = $(".tab-content p")
        t_li.hover(function() {
          var i = t_li.index($(this));

          function way() {
            t_li.removeClass("cur").eq(i).addClass("cur");
            c_li.hide().eq(i).show();
          }
          timer = setTimeout(way, 500);
        }, function() {
          clearTimeout(timer);
        });
      });
    </script>
    <style>
      .head {
        width: 300px;
        height: 50px;
        border: 1px dashed #ccc;
      }
      
      .tab {
        width: 50%;
        float: left;
        line-height: 50px;
        cursor: pointer;
      }
      
      .cur {
        border-bottom: 2px solid red;
      }
    </style>
  </head>
  <body>
    <p style="width: 300px;margin-left: 300px;" class="main">
      <p class="head">
        <p class="tab cur">tab1</p>
        <p class="tab">tab2</p>
      </p>
      <p class="tab-content">
        <p>tab1的内容<br>tab1的内容<br>tab1的内容<br></p>
        <p style="display: none;">tab2的内容<br>tab2的内容<br>tab2的内容<br></p>
      </p>
    </p>
  </body>

</html>

以上がjs マウスがタブを通過するときの切り替え遅延を実装するサンプル コードの共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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