我使用jQuery对于一些简单的动画效果,一旦用户点击的东西。 但是,如果他们的第一个动画完成之前再次点击,没有任何反应。 他们必须等待,直到第一个动画结束。
有没有办法中断动画制作过程,并从头开始时,第二次点击发生?
谢谢。
我使用jQuery对于一些简单的动画效果,一旦用户点击的东西。 但是,如果他们的第一个动画完成之前再次点击,没有任何反应。 他们必须等待,直到第一个动画结束。
有没有办法中断动画制作过程,并从头开始时,第二次点击发生?
谢谢。
您可以使用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()
方法接受一个布尔值或字符串作为第一个参数。 如果它是一个布尔值,它会清除/未清除所有队列。 但是,如果你提供一个字符串,那么它只会清除队列组中的动画。
你可以重新推出动画之前只停留()
$("#start").click(function() { $("div").stop().fadeOut("slow"); });
听起来像是一份工作出队 。