Нормализовать wheelEvent в Firefox - PullRequest
0 голосов
/ 13 января 2019

Как я могу нормализовать событие прокрутки окна в Firefox?

Это прекрасно работает в mousewheel в Chrome и Safari браузерах, но не в Firefox

var normalizeWheelEvent = function(event) {           

   if (!!event.wheelDelta) {

      var wheelDeltaRate = 10;
      event.wheelX = event.wheelDeltaX / wheelDeltaRate;
      event.wheelY = event.wheelDeltaY / wheelDeltaRate;

   }

}; 

target.addEventListener('mousewheel',normalizeWheelEvent, useCapture);

Как мне обновить event для нормализации mousewheel в Firefox?

1 Ответ

0 голосов
/ 13 января 2019

Для Firefox вам нужно использовать e.detail, примерно так:

if (!!event.detail) {

    // Similar to your wheelDeltaRate, detailRate will change the speed
    var detailRate = 1.20;
    // let's add some magic for scrolling
    event.wheelX = event.axis == event.HORIZONTAL_AXIS ? (-1 * event.detail) * detailRate : 0;
    event.wheelY = event.axis == event.VERTICAL_AXIS ? (-1 * event.detail) * detailRate : 0;
}

и не забудьте использовать:

target.addEventListener('DOMMouseScroll',normalizeWheelEvent, useCapture);

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

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