关于鼠标hover事件及延时

  鼠标经过事件为web页面上最常见的事件之一。简单的hover可以用CSS :hover伪类实现,复杂点的用js。

  一般情况下,我们是不对鼠标hover事件进行延时处理。但是,有时候,为了避免不必要的干扰,常会对鼠标hover事件进行延时处理。所谓干扰,就是当用户鼠标不经意划过摸个链接,选项卡,或是其他区域时,本没有显示隐藏层,或是选项卡切换,但是由于这些元素上绑定了hover事件(或是mouseover事件),且无延时,这些时间就会立即触发,反而会对用户进行干扰。

比较适用于类似场景:

像腾讯首页,此处选项卡:对鼠标经过事件进行了延时处理

 下面贴出实现代码

(function ($) {
'use strict'
$.fn.hoverdelay = function (options) {
if (typeof options == 'string') {
options = { feedback: options };
} var settings = $.extend($.fn.hoverdelay.defaults, options || {});
var hoverTimer, outTimer;
return this.each(function () {
var $own = $(this);
$own.hover(function () {
clearTimeout(outTimer);
hoverTimer = setTimeout(function () {
settings.mouseover($own);
}, settings.hoverdelay);
},
function () {
clearTimeout(hoverTimer);
outTimer = setTimeout(function () {
settings.mouseout($own);
}, settings.hoverremove);
});
});
}; $.fn.hoverdelay.defaults = {
hoverdelay: 3000,
hoverremove: 50,
mouseover: function (selector) { },
mouseout: function (selector) { }
}; })(jQuery);

以上代码收集自:海丁网。  张鑫旭 博客详细介绍了此种情况,也给出了实现方式,二者代码没什么差别,个人只是更习惯海丁网参数的命名方式。

我可是最爱用的 Camel 啊,这不科学...

最新文章

  1. K & DN 的前世今生(微软开源命名变革)
  2. ELK日志分析系统(转)
  3. iOS开发——项目实战总结&带你看看Objective-C的精髓
  4. 为AM335x移植Linux内核主线代码
  5. Git Step by Step
  6. apk反编译(4)Smali代码注入
  7. C++学习笔记:指向函数的指针
  8. 点点滴滴-ConfigurationManager.AppSettings
  9. MvvmCross[翻译] 使用Xamarin与MvvmCross完成一个跨平台App
  10. [React Testing] Redux Reducers
  11. iOS调节系统音量
  12. CodeForces 566D 并查集集合合并
  13. Java学习之旅基础知识篇:数据类型及流程控制
  14. js求三位数的和
  15. MySQL浅谈 LEFT JOIN
  16. 分析DuxCms之AdminController
  17. 从XML文件和properties文件提取数据
  18. Docker:Windows7下使用docker toolbox(1)
  19. 服务器由于redis未授权访问漏洞被攻击
  20. J03-Java IO流总结三 《 FileInputStream和FileOutputStream 》

热门文章

  1. 关于iis7短日期后面带有星期的解决办法
  2. 【Android开发坑系列】如何让Service尽可能存活
  3. JavaScript-求时间差
  4. Codeforces Round #379 (Div. 2) C. Anton and Making Potions 枚举+二分
  5. ASP lable标签显示过长,自动换行。
  6. Initialize the Storage Emulator by Using the Command-Line Tool
  7. [转] Linux学习之CentOS(三十六)--FTP服务原理及vsfptd的安装、配置
  8. Ext JS 6 新特性和工具
  9. 用Jquery load text文本到網頁遇到的問題
  10. TN035: Using Multiple Resource Files and Header Files with Visual C++