@Zombie42679
Пытаюсь верстать, учу JS, когда-нибудь стану топом

Можно ли несколько событий скролла считать за одно?

Собственно, хочу понять, как можно сделать, чтобы при прокрутке колесиком мыши вниз/вверх независимо насколько сильно крутанули колесо - это считалось за одной событие. В примере ниже, за одну прокрутку у меня событие скролла вызывалось до 10 раз, можно ли это превратить в 1 раз или как-то контролировать, может задержку давать ?

5d2076f956937027667017.jpeg

Пример: https://jsfiddle.net/jmh4vte8/1/
  • Вопрос задан
  • 50 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
погуглите debounce и throttle
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@MarvinJan
Например так.

В таймауте ставите нужное время в миллисекундах, после которого считается, что скролл прекратился.

(function(){
   let scrollingStopped;
   document.addEventListener("mousewheel", function() {
      clearTimeout(scrollingStopped);
      let is_scrolling = true;
      scrollingStopped = setTimeout( function() {
          is_scrolling = false;
          console.log("stopped");
    }, 500)
})
})();
Ответ написан
Ваш ответ на вопрос

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

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