Как посчитать количество событий прокрутки - PullRequest
0 голосов
/ 16 апреля 2020

Здесь я пытаюсь подсчитать количество свитков, которые я сработал. Я обычно могу получить количество свитков, но я хочу взять количество раз, которое у меня есть свиток. Скажем, если я обычно прокручиваю один раз, он содержит почти 4-7 событий прокрутки, где я хочу считать это одним. когда я прокручиваю небольшую или длинную прокрутку, я хочу подсчитать, сколько раз я прокрутил!

Вот скрипка https://jsfiddle.net/j4es8d3x/

 $(window).on('wheel', function(e){

    if(e.originalEvent.wheelDelta /120 > 0) {
        console.log('scrolling up !');
    }
    else{
        console.log('scrolling down !');
    }
 }); 

Ответы [ 2 ]

3 голосов
/ 16 апреля 2020

Вам нужно отменить ваше мероприятие:

var timer;

$(window).on('wheel', function(e) {
     clearTimeout(timer);

     timer = setTimeout(function () {
         // Calculate scrolls here
     }, 100);
}
1 голос
/ 16 апреля 2020

Существует четко определенный шаблон для этого вида сценария ios. Например, throttle или debounce от loda sh:

enter image description here

  • debounce : Группировка внезапного пакета событий (например, нажатий клавиш) в одно.
  • throttle: Гарантирование постоянного потока выполнения каждые X миллисекунд. Например, каждые 200 мс проверяйте свою позицию прокрутки, чтобы запустить анимацию CSS.

Попробуйте следующий код:

_.debounce(yourFunction, 300); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...