Печать чисел — setTimeout JavaScript

#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) in start , так и для setTimeout(start2, 2000) in start2 . Как и в первом случае, ее следует вызывать только при 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>