2013-12-13 79 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