В общем setInterval == BAD и setTimeout == GOOD для анимации.
setInterval попытается перехватить воспроизведение, как указано nnnnnn :
некоторые браузеры могут поставить все в очередь, а затем попытаться догнать, когдавкладка снова получает фокус
Лучший способ зацикливания animate () - это рекурсивный вызов, например:
var myTimeout;
var myAnimation = function () {
$('#myID').animate({
[propertyKey]:[propertyValue]
}, 5000, function() {
myTimeout = setTimeOut(myAnimation, 1000);
});
}
Обратите внимание, как удерживается myTimeout выходит за рамки myAnnimation , позволяя остановить анимацию
clearTimeout(myTimeout);
, которую можно подключить к событию window.unload .