Здравствуйте, уважаемые.
Перейду сразу к делу
setTimeout(function(){
doSomething();
/**Условие остановки*/ setTimeout(arguments.callee, 1000);
}, 1000)
Нужно создать бесконечную анимацию, останавливающуюся и запускающуюся по нажатию кнопки. Если делать плавную анимацию, то вполне сойдет обращение какого нибудь флага при клике по кнопке и проверка его в месте условия остановки, но у меня анимация "рывками", и когда я нажимаю подобную кнопку, проходит еще один кадр анимации, так как setTimeout уже ждет времени своего срабатывания, что недопустимо в моем случае.
setInterval/clearInterval подошел бы идеально, если бы не варьирующаяся длина кадра (в примере 1000, но на деле что-то вроде getInterval()). Подскажите пожалуйста, какие есть способы мгновенно остановить анимацию такого типа? Или, возможно ли как-то подобное осуществить через setInterval?