首頁 >web前端 >js教程 >js滑鼠經過tab選項卡時實現切換延遲的範例程式碼分享

js滑鼠經過tab選項卡時實現切換延遲的範例程式碼分享

黄舟
黄舟原創
2017-03-25 14:43:051427瀏覽

這篇文章主要為大家詳細介紹了js滑鼠經過tab選項卡時實現切換延遲效果,具有一定的參考價值,有興趣的小夥伴們可以參考一下

#       偶然間在瀏覽網頁時,發現這樣的效果。當滑鼠不經意間滑過tab時並不會切換,當滑鼠停留在上面一段時間後才會切換。

  個人覺得使用者體驗不錯,優點是1.當使用者只是滑過標籤,並不需要切換,而此時如果切換標籤需要請求資料時,會避免不必要的非同步請求;2.避免頁面在使用者不需要的時候切換跳動,影響使用者體驗。

  網路上查閱了幾個方法,發現下面的方法比較簡潔有效。整理下來,以供以後參考。

  其中的重點是那段js程式碼:原理是,透過hover的時候設定計時器,延遲執行切換方法,離開時,清楚計時器。當hover的時間小於延遲時間時,會清楚計時器,不會執行切換方法。僅當停留時間大於延遲時間才會切換。這樣能有效避免滑過tab觸發切換事件

複製程式碼

<!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滑鼠經過tab選項卡時實現切換延遲的範例程式碼分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn