我遇到的问题是我有一个div,其中有三个隐藏的span标签(用作标签)和jquery我使用鼠标悬停功能为其中一个标签设置动画。
我想知道是否有办法停止/取消已经运行的功能。即,如果我快速移动到第二个鼠标悬停事件,动画似乎排队,这意味着当我搬走时,可能仍会出现动画。
理想情况下,新按钮上的鼠标悬停事件会杀死当前正在运行的任何动画。
答案 0 :(得分:3)
是的,您可以调用.stop()方法来停止匹配元素上的任何正在运行的动画。
答案 1 :(得分:3)
是:stop
功能。这会停止当前动画。
如果要删除所有当前排队的元素,则必须传递true
的第一个参数。如果你想跳到当前动画的结尾(通常是个好主意),你应该传递true
的第二个参数。
所以你的电话可能看起来有点像这样:
$('#someEl').mouseenter(function() {
$(this)
.stop(true, true) // stop any currently existing animations
.animate({ // and then start a new one
marginLeft: '20px'
}, 250);
});
答案 2 :(得分:2)
是的,jquery中有一个函数。试试这个:
$('#divId').hover(function() {
$(this).find('#img1').stop(true, true).slideUp();
$(this).find('#img2').stop(true, true).slideDown();
}, function() {
$(this).find('#img1').stop(true, true).slideDown();
$(this).find('#img2').stop(true, true).slideUp();
});