setTimeout
не останавливается; он запрашивает Javascript для запуска другого кода позже.
Googling for «setTimeout loop» сообщает вам, что именно вам нужно знать. Если вы немного оглядитесь, он даже упоминает setInterval. Разница: использование setTimeout в цикле будет ждать 3 секунды между циклами, тогда как setInterval заставит его занять 3 секунды для цикла (включая сколько времени занимает анимация, если это меньше 3 секунд :)). Кроме того, setInterval создает бесконечный цикл, который вам нужно будет выполнить после необходимого количества раз; setTimeout требует, чтобы вы построили цикл самостоятельно.
i = 0;
function animation_loop() {
someAnimation();
setTimeout(function() {
i++;
if (i < n) {
animation_loop();
}
}, 3000);
};
animation_loop();
i = 0;
someAnimation();
setInterval(function() {
i++;
if (i < n) {
someAnimation();
}
}, 3000);
вы рок !! Большое вам спасибо - я настоящий новичок, поэтому я не знаком с идиомами, и я не всегда знаю, какие лучшие ключевые слова для Google. Во всяком случае, вы действительно разблокировали меня по-крупному! – djianp
Блестящий! Цикл 'setTimeout' - хорошая идея: D –