我使用jquery animate加上使用setInterval来设置div的动画。
然而,当我在clearInterval时,动画应该停止。但它在一段时间后停止了。效果不是立竿见影的。
$(document).ready(function(){
var blinkTime;
$('#one').click(function(){
blinkTime = setInterval(function(){
$('#a').animate({opacity: 0}, 1000);
$('#a').animate({opacity: 1}, 1000);
}, 1000);
});
$('#two').click(function(){
alert('clicked');
window.clearInterval(blinkTime);
});
});
请查看此DEMO
答案 0 :(得分:3)
您的演示与问题中的代码不同。
在问题中,您的间隔为1000
,但动画总计2000
。因此,您可能会建立一个动画调用队列。
我建议不要尝试与自己的计时器协调jQuery动画。而是使用回调来重新启动动画。
答案 1 :(得分:3)
间隔刚开始一秒动画,因此清除间隔将阻止它开始下一个动画。但它不会停止动画。您可以使用$("#a").stop();
执行此操作。查看the documentation for jQuery's .stop()。
答案 2 :(得分:2)
尝试使用$('#a')。stop(true,true).animate ...
检查jquery停止功能。