Jquery延迟鼠标移出
我有这个脚本:
$("#menu ul li").mouseover(
function () {
$(this).find(".submenu").fadeIn("slow");
}
);
var timer = 0;
function animate_me() {
$(this).find(".submenu").stop().fadeOut("slow");
}
$(function(){
$("#menu ul li").mouseout(function(){
timer = setTimeout("animate_me()", 300); // start timer when mouse is moved in
}, function() {
clearTimeout(timer); // stop it if mouse is moved out
});
});
如何延迟淡出直到菜单 ul li 被鼠标关闭两秒钟?
I have this script:
$("#menu ul li").mouseover(
function () {
$(this).find(".submenu").fadeIn("slow");
}
);
var timer = 0;
function animate_me() {
$(this).find(".submenu").stop().fadeOut("slow");
}
$(function(){
$("#menu ul li").mouseout(function(){
timer = setTimeout("animate_me()", 300); // start timer when mouse is moved in
}, function() {
clearTimeout(timer); // stop it if mouse is moved out
});
});
How do i delay the fadeout until menu ul li has been moused off for two seconds?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用jQuery 的 HoverIntent 插件。它完全可以满足您的需求,甚至更多。
具体来说,超时功能提供了这种功能。用法示例:
来自文档
Use the HoverIntent plugin for jQuery. It does exactly what you need and more.
Specifically the timeout feature provides this capability. Example usage:
From the documentation
首先,mouseout 仅采用一个参数。如果你想以这种方式使用它,你需要使用
.hover()
。然后你可以使用.dealy()
来实现你的目标,.stop(true,true)
清除延迟,这里是一个演示:
http://jsfiddle.net/meo/zTTFJ/
Fist of all, mouseout, takes only one parameter. You need to use
.hover()
if you want to use it this way. Then you could just use.dealy()
to achieve your goal,.stop(true,true)
clears that delayhere is a demo:
http://jsfiddle.net/meo/zTTFJ/