• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >JavaScript > js鼠标经过tab选项卡时实现切换延迟

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

作者:心悦诚服555 字体:[增加 减小] 来源:互联网 时间:2017-05-11

心悦诚服555通过本文主要向大家介绍了js鼠标经过tab选项卡时实现切换延迟等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

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

</div>

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

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2017-05-11jQuery、zepto、js常用小技巧
  • 2017-05-11利用JS实现简单的日期选择插件
  • 2017-05-11angularjs ui-router中路由的二级嵌套
  • 2017-05-11图片懒加载插件实例分享(含解析)
  • 2017-05-11bootstrap weebox 支持ajax的模态弹出框
  • 2017-05-11node.js中debug模块的简单介绍与使用
  • 2017-05-11微信小程序 页面传值详解
  • 2017-05-11Vuex之理解Getters的用法实例
  • 2017-05-11JavaScript 函数节流详解及方法总结
  • 2017-05-11JS实现图片点击后出现模态框效果

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 自带气泡提示的vue校验插件(vue-verify-pop)
    • jQuery窗口拖动功能的实现代码
    • js通过keyCode值判断单击键盘上某个键,然后触发指定的事件方法
    • webpack配置文件和常用配置项介绍
    • 基于JavaScript实现的插入排序算法分析
    • bootstrap中添加额外的图标实例代码
    • 详解Angular 4.x 动态创建组件
    • 轻松理解JavaScript之AJAX
    • flag和jq on 的绑定多个对象和方法(必看)
    • js添加节点

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有