JavaScript Бесконечный цикл слайд-шоу с задержками?

Как мне создать бесконечный цикл в JavaScript? Я пытаюсь сделать слайд-шоу, которое у меня работает, но не могу зациклить. Я даже не могу заставить его повторить цикл дважды.

Код, который я использую сейчас, -

window.onload = function start() {
    slide();
}
function slide() {
    var num = 0;
    for (num=0;num<=10;num++) {
        setTimeout("document.getElementById('container').style.marginLeft='-600px'",3000);
        setTimeout("document.getElementById('container').style.marginLeft='-1200px'",6000);
        setTimeout("document.getElementById('container').style.marginLeft='-1800px'",9000);
        setTimeout("document.getElementById('container').style.marginLeft='0px'",12000);
    }
}

Без элемента for он проходит один раз. Когда я ввожу for, Firefox либо блокируется, либо просто зацикливается один раз. Я уверен, что это действительно простая вещь, и даже если это будет повторяться 1000000 раз или что-то в этом роде вместо бесконечности, это сработает для меня.

Кроме того, я не хочу использовать jQuery или что-то еще, созданное кем-то другим. Я изучаю JavaScript, и это частично помогает мне учиться, а частично потому, что я пытаюсь создать как можно больше систем на основе HTML5.

РЕДАКТИРОВАТЬ: Я думаю, причина зависания в том, что он выполняет код сразу, а затем просто сохраняет его в кеше или что-то в этом роде. Я хочу, чтобы он прошел через это один раз, а затем снова начал с самого начала, что я всегда думал о циклах и для чего. В «пакетном» сценарии (командной строке) это можно сделать с помощью команды « GOTO ». Не знаю, есть ли эквивалент в JS или нет, но это действительно моя цель.

39
задан rolfl 30 July 2019 в 18:31
поделиться