Чтобы избавиться от накопления анимации, вызванного setTimeout
(или setInterval
либо) во время неактивности вкладки (окна) (потеря фокуса), мне пришлось использовать рекурсивный обратный вызов , например:
function auto() {
interval = setTimeout(function() {
$('#slider').animate({left: '-=500'}, 800, function(){
auto(); // THE RECURSIVE CALLBACK
});
}, 2000);
}
auto();
Теперь я бы хотел, чтобы НЕ повторно использовал #slider
анимацию , потому что я уже определил ее в function animate()
(без изменения * 1014). * потому что я должен использовать это в других местах как есть):
function animate(){
$('#slider').animate({left: '-=500'}, 800);
}
Как заставить работать что-то вроде этого :
function auto() {
interval = setTimeout(function() {
animation();auto(); // THIS IS WRONG AS NOT a RECURSIVE CALLBACK - and creates animation buildup
}, 2000);
}
auto();
Заранее большое спасибо!