鼠标经过(hover)事件的延时处理
2024-08-27 10:08:02
关于鼠标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 啊,这不科学...
最新文章
- K &; DN 的前世今生(微软开源命名变革)
- ELK日志分析系统(转)
- iOS开发——项目实战总结&;带你看看Objective-C的精髓
- 为AM335x移植Linux内核主线代码
- Git Step by Step
- apk反编译(4)Smali代码注入
- C++学习笔记:指向函数的指针
- 点点滴滴-ConfigurationManager.AppSettings
- MvvmCross[翻译] 使用Xamarin与MvvmCross完成一个跨平台App
- [React Testing] Redux Reducers
- iOS调节系统音量
- CodeForces 566D 并查集集合合并
- Java学习之旅基础知识篇:数据类型及流程控制
- js求三位数的和
- MySQL浅谈 LEFT JOIN
- 分析DuxCms之AdminController
- 从XML文件和properties文件提取数据
- Docker:Windows7下使用docker toolbox(1)
- 服务器由于redis未授权访问漏洞被攻击
- J03-Java IO流总结三 《 FileInputStream和FileOutputStream 》
热门文章
- 关于iis7短日期后面带有星期的解决办法
- 【Android开发坑系列】如何让Service尽可能存活
- JavaScript-求时间差
- Codeforces Round #379 (Div. 2) C. Anton and Making Potions 枚举+二分
- ASP lable标签显示过长,自动换行。
- Initialize the Storage Emulator by Using the Command-Line Tool
- [转] Linux学习之CentOS(三十六)--FTP服务原理及vsfptd的安装、配置
- Ext JS 6 新特性和工具
- 用Jquery load text文本到網頁遇到的問題
- TN035: Using Multiple Resource Files and Header Files with Visual C++