Могу ли я добавить setInterval для каждого шага for?

111
13 мая 2021, 20:40

Я захотел повернуть элемент на странице. Чтобы он не поворачивался мгновенно я добавил setInterval, который, как я думал, добавит задержку для каждого шага, но это так не работает. Он добавляет задержку между поворотами на 180deg. Как добавить задержку для каждого градуса?

$('.header').find("li").click(function(){
  for(let i = 0; i <= 180; i++){
    setInterval(() => {
      console.log(i);
      $(this).find('.fas').css({
        'transform':'rotate(' + i + 'deg)'
      })
    }, 200);
  }
})
Answer 1

181 setInterval? Вам столько не надо.

$('.header').find("li").click(function(){ 
  var timer = i => { 
    $(this).find('.fas').css({ 
      'transform':'rotate(' + i + 'deg)' 
    }); 
    if (i < 180) 
      setTimeout(timer, 1000, i + 1); 
  }; 
  timer(0); 
});

READ ALSO
Как правильно передать на сервер csrf-токен с content-type != текст

Как правильно передать на сервер csrf-токен с content-type != текст

С обычным content-type='Content-Type' и "application/x-www-form-urlencoded" проблем нетНо все мои попытки отправить на сервер с помощью FormData либо application/json терпят неудачу

87
Django реализация сложного сценария с динамическими формами

Django реализация сложного сценария с динамическими формами

В процессе разработки своего тренировочного проекта появилась потребность реализовать следующий сценарий для ввода параметром n количества...

290
Как интегрировать статистику аккаунта Stack Overflow в свой сайт?

Как интегрировать статистику аккаунта Stack Overflow в свой сайт?

У меня есть среда для разработки сайтов

104
Как посчитать количество знаков ДО запятой?

Как посчитать количество знаков ДО запятой?

Не нашел ни одного удобного решенияЯ представляю, что нужно делить на 10, 100, 1000, … , но надеюсь, что есть уже стандартная функция, которая позволит...

119