@gpyshenko

Как сделать задержку каждого шага в цикле For?

Хочу задавать стили у элементов последовательно, но чтобы между шагами была задержка.
var bestValues = document.querySelectorAll('.aboutUs-column-dscr');

function get_style() {
	for (i = 0; i < bestValues.length; i++) {
		bestValues[i].style.color = "green";
	}
}
setInterval(get_style, 1000);
  • Вопрос задан
  • 315 просмотров
Решения вопроса 2
abyrkov
@abyrkov
JavaScripter
Варианта два: цепочка функций с задержкой или отлагать на текущий i.
Вариант 1
function get_style() {
  function f() {
    if(i >= bestValues.length) return;
    bestValues[i].style.color = "green";
    ++i;
    setTimeout(f, 1000);
  }
  var i = 0;
  f();
}
Вариант 2
function get_style() {
  for (i = 0; i < bestValues.length; i++) {
    (function(i) {
      setTimeout(function() { bestValues[i].style.color = "green"; }, 1000 * i);
    }(i));
  }
}
UPD: Исправил последствия недосыпа
UPD: Исправили окончательно(в прошлый раз почему-то слетело)
Ответ написан
riot26
@riot26
<:З )~~
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы