确保只触发一个动画

时间:2015-02-13 17:50:56

标签: javascript jquery animation

我在$(window).scroll()上运行此动画,大部分工作正常。

$('#el').animate({ left: toMove }, 500);

问题是如果用户滚动得太快,则会触发两个动画,第二个动画将在第一个动画移动到足够远之前触发。如何确保在任何给定时间只有一个动画,然后其他动画将跟随?我需要元素动画左边任何其他动画运行,但我需要它们全部运行。我尝试使用.queue(),但无法找到合适的解决方案。

1 个答案:

答案 0 :(得分:2)

你可以使用这样的stop函数来平滑:

$('#el').stop(true, false).animate({ left: toMove }, 500);

stop函数,当这样调用时,将清除任何等待动画的动画队列,并停止当前动画(如果有)。

修改

如果您希望动画在再次制作动画之前结束,则只需拨打.stop(true, true)