我遇到的问题是我有一个 div,其中有三个隐藏的 span 标签(用作标签),我使用 jquery 使用 mouseover 函数来对其中一个标签进行动画处理。
我想知道是否有办法停止/取消已经运行的函数。即,如果我快速移动到第二个鼠标悬停事件,动画似乎会排队,这意味着当我离开时,动画可能仍在发生。
理想情况下,新按钮上的鼠标悬停事件会终止其中当前正在运行的所有动画。
最佳答案
是的: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);
});
关于jquery函数需要先取消其他函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7389518/