@ForSureN1
frontend dev

Как добавлять к элементам класс с интервалом между ними?

Добрый день. У меня на сайте есть прелоадер, когда сайт загрузился, он скрывается, и я хочу чтобы мои 4 блока появились поочередно слева на право как будто упали сверху, я знаю что это делается путем изменения высоты и т.п. НО вопрос в том, что я добавляю класс с использованием setTimeout для каждого элемента, но по неизвестной причине, классы добавляются одновременно.
function dropItem() {
  let items = document.querySelectorAll('.header-bottom__item')
  for(let i = 0; i < items.length; i++) {
    setTimeout(items[i].classList.add('drop'), i*2000 + 1000)
  }
}

window.onload = function () {
  dropItem();
}

Заранее благодарю
  • Вопрос задан
  • 80 просмотров
Решения вопроса 1
v3shin
@v3shin
Веб-шаман
Вы в setTimeout() передаете не функцию, а результат выполнения items[i].classList.add('drop'), что вычисляется сразу.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@rgali3v
А зачем перебирать через цикл)
function dropItem() {
  const items = document.querySelectorAll('.header-bottom__item');
  items.forEach(key, () => {
    setTimeout(key.classList.add('drop'), ...);
  });
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы