鼠标经过(hover)事件的延时处理
2013-08-15 15:05
387 查看
关于鼠标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 啊,这不科学...
相关文章推荐
- jQuery鼠标经过(hover)事件的延时处理
- jQuery – 鼠标经过(hover)事件的延时处理
- 【web前端】jQuery – 鼠标经过(hover)事件的延时处理
- jQuery 鼠标经过(hover)事件的延时处理示例
- jQuery – 鼠标经过(hover)事件的延时处理
- jQuery – 鼠标经过(hover)事件的延时处理
- jQuery – 鼠标经过(hover)事件的延时处理
- jQuery – 鼠标经过(hover)事件的延时处理
- jQuery 鼠标经过(hover)事件的延时处理示例
- jQuery实现鼠标经过事件的延时处理效果
- jQuery实现鼠标经过事件的延时处理效果
- <a>标签,鼠标经过或者停留触发延时响应事件
- 鼠标悬浮事件下拉列表中的延时处理
- 关于鼠标hover事件及延时
- jquery鼠标经过延时处理
- jquery鼠标经过延时处理
- jquery 鼠标经过延时触发事件,jquery插件
- 利用添加onmouseover事件,做一组鼠标经过时自动换图片的图形链接
- WPF中对鼠标事件转换为命令处理模式的鼠标位置参数传递及EventArgs传递
- jQuery 的 live() 方法对 hover 事件的处理