jQuery - Interrupt animation?

2019-08-06 10:47发布

我使用jQuery对于一些简单的动画效果,一旦用户点击的东西。 但是,如果他们的第一个动画完成之前再次点击,没有任何反应。 他们必须等待,直到第一个动画结束。

有没有办法中断动画制作过程,并从头开始时,第二次点击发生?

谢谢。

Answer 1:

您可以使用stop()方法

HTML:

<input type="button" value="fade out" id="start">
<input type="button" value="stop" id="stop">
<div style="background-color: blue; height: 100px;">Testing</div>

JS:

$("#start").click(function() { $("div").fadeOut("slow"); });
$("#stop").click(function() { $("div").stop(); });

编辑:上面的代码进行测试,并在FF3.5和IE8工作

使用你想中断的动画元素。

请记住,该元素将停止动画中期的动画。 所以,你可能需要停止后的CSS重置,根据您的情况。

EDIT2:在jQuery 1.7中出现了一些更新。 现在,您可以组动画队列与名称。 因此, stop()方法接受一个布尔值或字符串作为第一个参数。 如果它是一个布尔值,它会清除/未清除所有队列。 但是,如果你提供一个字符串,那么它只会清除队列组中的动画。



Answer 2:

你可以重新推出动画之前只停留()

$("#start").click(function() { $("div").stop().fadeOut("slow"); });


Answer 3:

听起来像是一份工作出队 。



文章来源: jQuery - Interrupt animation?