В моей функции я анимирую движение div слева направо с помощью requestAnimationFrame
.
move_right = function(object){
movement_right_ID = requestAnimationFrame(function(){
move_right(object)
});
$(object).css({
left: "+=5"
})
get_boundary(object) //this is another function that gives me the div boundaries and returns object_left
if(object_left > $(window).width()){
cancelAnimationFrame(movement_right_ID);
$(object).css({
left: "-100%"
})
}
}
Эта функция работает так, как я хочу, т.е. плавно перемещает div слева направо и сбрасывает его в левое положение.
Моя проблема, однако, в том, что я хочу запустить всю эту анимацию несколько раз:
когда я использую
setInterval(function(){
move_right($("#div1"))
}, 1000);
У меня проблема в том, что он запускает рассинхронизацию вскоре после запуска. Я подозреваю, что это связано с тем, что анимация не завершается, когда она хочет снова запуститься.
Я ищу здесь решение, похожее на обратный вызов, но предпочел бы не переключаться на метод animation
.
Итак, как мне изменить код, чтобы запускать функцию с интервалом в 1000 мс всегда после ее завершения?