any*_*y_h 1 jquery timeout delay drop-down-menu
我试图将延迟添加到一个简单的下拉菜单中。使用以下代码,我得到了延迟,但种类错误。当我非常快地将鼠标移到菜单上时,它会延迟它,但在300ms之后仍会打开它。正确的做法是,当鼠标悬停在菜单上300ms时(与离开菜单时一样)打开菜单。
$('#menu-item-1226:not(.parent-pageid-1225 #menu-item-1226)').hover(function(){
var menu = this;
setTimeout(function(){
$(menu).find('ul').slideToggle(100);
}, 300);
});
Run Code Online (Sandbox Code Playgroud)
我是否必须以stop某种方式做到这一点?或者什么是正确的方法?
提前致谢
这可能是您正在寻找的东西,但是使用Jquery插件HoverIntent也会很好,甚至可能更好。
没有悬浮意图:
$(function() {
var timer;
$('#Header li').hover(function(){
if(timer) {
clearTimeout(timer);
timer = null
}
timer = setTimeout(function() {
$(this).find('ul').slideToggle(100);
}, 500)
},
// mouse out
});
Run Code Online (Sandbox Code Playgroud)
});
带有悬浮意图插件
$("#Header li").hoverIntent({
sensitivity: 7, // number = sensitivity threshold (must be 1 or higher)
interval: 50, // number = milliseconds of polling interval
over: function () {
$('ul', this).slideDown(220);
}, // function = onMouseOver callback (required)
timeout: 0, // number = milliseconds delay before onMouseOut function call
out: function () {
$('ul', this).hide();
} // function = onMouseOut callback (required)
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8166 次 |
| 最近记录: |