2013-12-13 77 views
3

我在围绕一个圆圈旋转对象。当盒子到达顶部时,我想停止动画,应该有几秒的延迟,然后开始动画,直到下一个盒子到达顶部。JavaScript中的动画之间的延迟

代码段:

if(x==40.109375 && y==218.015625){ 
    clearInterval(timer); 
    timer = setInterval(animate, 1000); 
} 

xy是顶部位置的

Fiddle

Should stop when reach at red circled position

回答

1

你有动画再开始前设置超时。这样来做:

setTimeout(function(){ 
    timer = setInterval(animate, 35); 
},1000); 

至于你提到它,如果鼠标进入/离开盒多次奇怪的事情发生了。要解决它,一种解决方案是在更改之前检查timer的状态。请参阅此琴:

http://jsfiddle.net/p876D/3/

或者,你已经做了,清理超时将工作太

http://jsfiddle.net/p876D/4/

+1

只专注在框中,让它一旦停下来,然后松重点又一次盘旋,它提高了速度 –

+1

的确如此!我会尽力找到解决办法! –

+0

我通过清除超时来修复它 –

0

超时会延迟下一个间隔的开始坐标

if(x==40.109375 && y==218.015625){ 
    clearInterval(timer); 
    setTimeout(function() { 
     timer = setInterval(animate, 100); 
    }, 1000); 
} 

FIDDLE