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实现选中当前菜单后高亮显示的导航条效果

    JS实现选中当前菜单后高亮显示的导航条效果

    这篇文章主要介绍了JS实现选中当前菜单后高亮显示的导航条效果,涉及JavaScript针对页面元素的遍历及样式动态操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10
  • 微信小程序自定义tabbar栏实现过程讲解

    微信小程序自定义tabbar栏实现过程讲解

    tabBar相对而言用的还是比较多的,但是用起来并没有难,下面这篇文章主要给大家介绍了关于微信小程序全局配置之tabBar的相关资料,文中通过图文以及示例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • javascript时间排序算法实现活动秒杀倒计时效果

    javascript时间排序算法实现活动秒杀倒计时效果

    这篇文章主要介绍了javascript时间排序算法实现活动秒杀倒计时效果,即一个页面多个倒计时排序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • JavaScript获取select中text值的方法

    JavaScript获取select中text值的方法

    这篇文章主要介绍了JavaScript获取select中text值的方法,涉及javascript针对HTML页面元素相关判断与获取操作技巧,需要的朋友可以参考下
    2017-02-02
  • JavaScript中改变this指向的三种方式总结

    JavaScript中改变this指向的三种方式总结

    this 指向的值是可以通过手动方式去改变的,比如call、bind、apply方法,本文主要为大家介绍了这三种方式的具体实现步骤,需要的可以参考下
    2023-12-12
  • ES6中解构赋值实现变量批量赋值解放双手

    ES6中解构赋值实现变量批量赋值解放双手

    这篇文章主要为大家介绍了ES6中解构赋值实现变量批量赋值解放双手,变量的解构赋值,听起来很复杂,简单点说可以理解成批量操作变量赋值
    2022-04-04
  • JavaScript如何从listbox里同时删除多个项目

    JavaScript如何从listbox里同时删除多个项目

    要从列表框同时删除多个项目只能从下向上删除,这样就不会出现索引号乱变的问题了,下面有个不错的示例,大家可以感受下
    2013-10-10
  • 利用js+css+html实现固定table的列头不动

    利用js+css+html实现固定table的列头不动

    本文分享了利用js+css+html实现固定table的列头不动的实例代码。小编认为具有很好的参考价值,感兴趣的朋友可以看下
    2016-12-12
  • 利用JS十分钟判断数组中存在元素的多种方式

    利用JS十分钟判断数组中存在元素的多种方式

    这篇文章主要给大家介绍了关于利用JS十分钟判断数组中存在元素的多种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • HTML与javascript常碰到的编码问题

    HTML与javascript常碰到的编码问题

    在日常的前端开发工作中,我们会经常的与HTML、javascript、css等语言打交道,和一门真正的语言一样,计算机语言也有它的字母表、语法、词法、编码方式等
    2008-12-12

最新评论