我有以下情况:
我有一个对象,我们称之为“按钮”。当您将鼠标悬停在“按钮”上时,它会使另一个对象“信息”向下滑动。当然,当你的鼠标离开Button时,Info就会向上滑动并消失。但是,Info 有一个链接,用户可能想要单击它。我可以延迟信息向上滑动,但到达信息后无法停止。
这是我正在使用的代码。
$("#button").hover(function(){
$("#info").slideDown("fast");
}, function(){ //the handlerOut
$("#info").delay(1000).slideUp("fast");
});
如何告诉 Button 在鼠标悬停后不要滑动信息?
您可以使用stop() http://api.jquery.com/stop/停止任何当前排队的动画。注意stop()
停止任何当前正在运行的动画,无论它当前在哪里,所以在这种情况下我们需要停止动画and显示元素。
(顺便说一句,在解决行为问题之前,您可能已经想使用stop()
以防止用户将鼠标快速移入和移出按钮时出现弹跳效果):
$("#button").hover(function(){
$("#info").stop(true,true).slideDown("fast");
}, function(){ //the handlerOut
$("#info").stop(true,true).delay(1000).slideUp("fast");
});
然后,为了获得您想要的行为,我们需要添加一个悬停处理程序#info
停止当前动画,然后根据需要显示或隐藏信息元素。由于我们已经有一个处理程序可以执行此操作,因此您只需添加#info
悬停调用的选择器:
$("#button, #info").hover(function(){
$("#info").stop(true,true).slideDown("fast");
}, function(){ //the handlerOut
$("#info").stop(true,true).delay(1000).slideUp("fast");
});
这是一个工作中的jsfiddle http://jsfiddle.net/Zs5K3/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)