#javascript #function #settimeout
#javascript #функция #отключение настройки
Вопрос:
Я пытаюсь напечатать числа в моем div (прокрутка) с 0 -5, затем пауза в 2 секунды, а затем с 5-0. Что не так?
var i = 0;
var j = 5;
var scroll = document.getElementById('scroll');
function start() {
scroll.textContent = i;
setTimeout(start, 2000)
i ;
if (i > 5) {
setTimeout(start2, 2000)
scroll.textContent = '';
}
}
function start2() {
scroll.textContent = j;
setTimeout(start2, 2000)
j--;
if (j == 0) {
setTimeout(start, 200)
}
}
start();
<div id="scroll"></div>
Комментарии:
1. вы вызываете
setTimeout(start, 2000)
, когда не должны…. То же самое с вашей другой функцией…2. Вы должны добавить условия как для
setTimeout(start, 2000)
instart
, так и дляsetTimeout(start2, 2000)
instart2
. Как и в первом случае, ее следует вызывать только приi <= 5
, в противном случае она будет вызываться вечно.
Ответ №1:
var j = 5;
var scroll = document.getElementById('scroll');
function start() {
for (let i = 0; i <= j; i)
scroll.textContent = i;
setTimeout(start2, 2000)
}
function start2() {
for (let i = j; i; --i)
scroll.textContent = i;
setTimeout(start, 2000) // should you?
}
start();
<div id="scroll"></div>