Не могу получить направление прокрутки колесика мыши в Firefox с помощью JavaScript - PullRequest
0 голосов
/ 19 сентября 2018


Я пытаюсь получить направление прокрутки с помощью JavaScript.Мой код работает во всех браузерах, кроме Firefox.Ниже приведен код для направления.

var wheelDirection = function(evt){
if (!evt) evt = event;
return (evt.detail<0) ? 1 : (evt.wheelDelta>0) ? 1 : -1;
};

var direction = wheelDirection();

Ниже приведен мой полный код, в котором я пытаюсь немного ослабить прокрутку колесика мыши с помощью библиотеки Greensock js ... Он работает во всех браузерах, кроме Firefoxгде прокрутка постоянно вниз даже при прокрутке вверх ... Также с помощью feature.js для обнаружения устройства с сенсорным экраном ... Я просто не могу понять, в чем проблема ... Пожалуйста, никаких решений jQuery.Я хочу чистый JavaScript ...

if (feature.touch) {
  //touch supported
} else {
  //touch not supported    
  function domLoad() {

    scrollTime = 0.6;
    scrollDistance = 360;

    function scroll(event) {

      event.preventDefault();

      var wheelDirection = function(evt){
        if (!evt) evt = event;
        return (evt.detail<0) ? 1 : (evt.wheelDelta>0) ? 1 : -1;
      };

      var direction = wheelDirection();
      console.log(direction);
      var scrollTop = window.pageYOffset;
      var finalScroll = scrollTop - parseInt(direction*scrollDistance);

      TweenMax.to(window, scrollTime, {
        scrollTo : { y:finalScroll, easing:Sine.easeOut ,autoKill:true }, overwrite: 10
      });

    }   

    window.addEventListener("wheel", scroll);

  };

  window.addEventListener("DOMContentLoaded", domLoad);

};

1 Ответ

0 голосов
/ 19 сентября 2018

Возможно, стоит попробовать, и я использовал его в нескольких проектах, и он работает стабильно.

var scroll = e.originalEvent.deltaY * -1 || e.originalEvent.wheelDelta || e.originalEvent.detail * -1;

Который работает с:

.on("mousewheel DOMMouseScroll")

ВыЗатем нужно будет проверить направление, используя переменную прокрутки, которая должна быть целым числом.

Я нашел это с помощью console.log из значения события прокрутки и посмотрел данные события, но вы захотите проверитьподдержка при этом.

...