js鼠标经过tab选项卡时实现切换延迟

 更新时间:2017年03月24日 14:09:13   作者:心悦诚服555  
这篇文章主要为大家详细介绍了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 div")
        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>
    <div style="width: 300px;margin-left: 300px;" class="main">
      <div class="head">
        <div class="tab cur">tab1</div>
        <div class="tab">tab2</div>
      </div>
      <div class="tab-content">
        <div>tab1的内容<br>tab1的内容<br>tab1的内容<br></div>
        <div style="display: none;">tab2的内容<br>tab2的内容<br>tab2的内容<br></div>
      </div>
    </div>
  </body>

</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • JS中常见的8种继承方法总结

    JS中常见的8种继承方法总结

    这篇文章主要给大家介绍了关于JS中常见的8种继承方法,在js中所有的引用类型都继承了Object,而继承也是通过原型链实现的,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-10-10
  • javascript模拟php函数in_array

    javascript模拟php函数in_array

    就是判断一个元素是否存在于数组中的函数,既然js里string都有indexOf函数,为什么不在Array对象里设置一个这样的函数呢,其实就用indexOf这个思想挺好的,不知道制定JS标准的人是基于什么考虑,把这样一个如此常用的功能没考虑在内的。
    2015-04-04
  • 深入JS函数中默认参数的使用详解

    深入JS函数中默认参数的使用详解

    本文主要介绍了深入JS函数中默认参数的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • 深入了解TypeScript中的映射类型

    深入了解TypeScript中的映射类型

    在 TypeScript 中,映射类型可以帮助我们避免编写重复的代码,它可以根据现有类型和定义的一些规则来创建新类型。本文我们就来看一下什么是映射类型以及如何构建自己的映射类型
    2022-08-08
  • javascript 跳转代码集合

    javascript 跳转代码集合

    网页页面客户端脚本跳转实现代码。一般后台语言多需要输出一些js跟前台的结合。
    2009-12-12
  • js模态对话框使用方法详解

    js模态对话框使用方法详解

    这篇文章主要为大家详细介绍了js模态对话框的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • 微信小程序登录session的使用

    微信小程序登录session的使用

    这篇文章主要介绍了微信小程序登录session的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • js里取容器大小、定位、距离等属性搜集整理

    js里取容器大小、定位、距离等属性搜集整理

    取容器大小、定位、距离等在实际中使用的比较广泛,下面与大家分享下小编整理的js相关代码,有此需求的朋友可以参考下,希望对大家有所帮助
    2013-08-08
  • 对于Form表单reset方法的新认识

    对于Form表单reset方法的新认识

    HTML中Form表单的reset方法被用来清空用户所输入的内容,以前一直误以为其是单纯的将input等输入项中的值清空
    2014-03-03
  • ES6新增的数组知识实例小结

    ES6新增的数组知识实例小结

    这篇文章主要介绍了ES6新增的数组知识,结合实例形式分析了ES6的数组新增知识点、使用技巧与相关注意事项,需要的朋友可以参考下
    2020-05-05

最新评论