Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Delay between animation in javascript

I amm working on rotation of objects around a circle. I want to stop the animation when a box reachs at top, there should be a delay of seconds then start animation until next box reaches on top.

Code Snippet:

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

x and y are the coordinates of top position

Fiddle

Should stop when reach at red circled position

like image 427
Muhammad Usman Avatar asked Aug 16 '26 04:08

Muhammad Usman


1 Answers

You have to set a timeout before the animation starts again. Do it this way :

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

As you mentioned it, weird things happen if the mouse enters/leaves the box many times. To work around it, one solution would be to check the state of timer before changing it. Please see this fiddle :

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

Or, as you have done it, clearing the timeout would work too

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

like image 95
Paul D. Avatar answered Aug 17 '26 19:08

Paul D.



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!