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


Posted in Javascript onMarch 24, 2017

       偶然间在浏览网页时,发现这样的效果。当鼠标不经意间滑过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>

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

Javascript 相关文章推荐
jqeury eval将字符串转换json的方法
Jan 20 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(四)用地图块拼成大地图
Jan 23 Javascript
jquery模拟LCD 时钟的html文件源代码
Jun 16 Javascript
jQuery制作简洁的多级联动Select下拉框
Dec 23 Javascript
JavaScript 面向对象与原型
Apr 10 Javascript
谈谈encodeURI和encodeURIComponent以及escape的区别与应用
Nov 24 Javascript
原生JavaScript实现滚动条效果
Mar 24 Javascript
用jQuery.ajaxSetup实现对请求和响应数据的过滤
Dec 20 Javascript
利用Javascript实现简单的转盘抽奖
Feb 13 Javascript
Underscore之Array_动力节点Java学院整理
Jul 10 Javascript
vue页面切换到滚动页面显示顶部的实例
Mar 13 Javascript
node app 打包工具pkg的具体使用
Jan 17 Javascript
详解angular2实现ng2-router 路由和嵌套路由
Mar 24 #Javascript
JS实现向iframe中表单传值的方法
Mar 24 #Javascript
JS正则替换去空格的方法
Mar 24 #Javascript
原生js封装自定义滚动条
Mar 24 #Javascript
fckeditor部署到weblogic出现xml无法读取及样式不能显示问题的解决方法
Mar 24 #Javascript
jQuery实现鼠标经过显示动画边框特效
Mar 24 #jQuery
JS得到当前时间的方法示例
Mar 24 #Javascript
You might like
PHP 获取远程网页内容的代码(fopen,curl已测)
2011/06/06 PHP
分享3个php获取日历的函数
2015/09/25 PHP
Yii模型操作之criteria查找数据库的方法
2016/07/15 PHP
11款基于Javascript的文件管理器
2009/10/25 Javascript
JQuery开发的数独游戏代码
2010/10/29 Javascript
Ext对基本类型的扩展 ext,extjs,format
2010/12/25 Javascript
Javascript查询DBpedia小应用实例学习
2013/03/07 Javascript
Jquery实现带动画效果的经典二级导航菜单
2013/03/22 Javascript
ExtJS4如何给同一个formpanel不同的url
2014/05/02 Javascript
js遍历子节点子元素附属性及方法
2014/08/19 Javascript
深入浅出分析javaScript中this用法
2015/05/09 Javascript
JS实现转动随机数抽奖特效代码
2020/04/16 Javascript
Javascript设计模式理论与编程实战之简单工厂模式
2015/11/03 Javascript
JQuery+EasyUI轻松实现步骤条效果
2016/02/22 Javascript
Javascript数组Array方法解读
2016/03/13 Javascript
js日期相关函数dateAdd,dateDiff,dateFormat等介绍
2016/09/24 Javascript
基于javascript实现的购物商城商品倒计时实例
2016/12/11 Javascript
webpack@v4升级踩坑(小结)
2018/10/08 Javascript
[03:42]2016国际邀请赛中国区预选赛首日现场玩家采访
2016/06/26 DOTA
浅谈Python中的数据类型
2015/05/05 Python
Python中有趣在__call__函数
2015/06/21 Python
详解Django中的权限和组以及消息
2015/07/23 Python
win系统下为Python3.5安装flask-mongoengine 库
2016/12/20 Python
Python实现mysql数据库更新表数据接口的功能
2017/11/19 Python
通过python3实现投票功能代码实例
2019/09/26 Python
Python Tornado之跨域请求与Options请求方式
2020/03/28 Python
财务方面个人工作的自我评价
2013/12/28 职场文书
公安学专业求职信
2014/07/27 职场文书
乡镇个人对照检查材料
2014/08/22 职场文书
2015年艾滋病防治工作总结
2015/05/22 职场文书
孙振耀退休感言
2015/08/01 职场文书
Python使用random模块实现掷骰子游戏的示例代码
2021/04/29 Python
Python基础之tkinter图形化界面学习
2021/04/29 Python
Django使用echarts进行可视化展示的实践
2021/06/10 Python
vscode中使用npm安装babel的方法
2021/08/02 Javascript
使用python将HTML转换为PDF pdfkit包(wkhtmltopdf) 的使用方法
2022/04/21 Python