简体   繁体   English

在firefox浏览器中没有触发mousewheel事件

[英]mousewheel event is not triggering in firefox browser

Please refer the below code. 请参考以下代码。

$(this.element).on("mousewheel", this.chartMouseWheel);

chartMouseWheel:function(e) {
        if(e.originalEvent.wheelDelta /120 > 0) {
            alert('scrolling up !');
        }
        else{
          alert('scrolling down !');
        }

        if (e.preventDefault)
        e.preventDefault();
        e.returnValue = false;
    },

this event triggering properly in IE,chrome and not triggering in Firefox ? 这个事件在IE中正确触发,Chrome并没有在Firefox中触发?

This is 2017 and the right answer is now: 这是2017年,正确的答案现在是:

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

    // deltaY obviously records vertical scroll, deltaX and deltaZ exist too
    if(event.originalEvent.deltaY < 0){
        // wheeled up
    }
    else {
        // wheeled down
    }
});

Works with current Firefox 51, Chrome 56, IE9+ 适用于当前的Firefox 51,Chrome 56,IE9 +

Note: The value of the deltas will depend on the browser and the user settings. 注意:增量的值取决于浏览器和用户设置。

Firefox doesn't recognize "mousewheel" as of version 3. You should use "DOMMouseScroll" instead for firefox. 从版本3开始,Firefox无法识别“鼠标滚轮”。您应该使用“DOMMouseScroll”代替firefox。

check this: http://www.javascriptkit.com/javatutors/onmousewheel.shtml 检查一下: http//www.javascriptkit.com/javatutors/onmousewheel.shtml

Use wheel event. 使用wheel事件。 This page also provides polyfills for old browsers https://developer.mozilla.org/en-US/docs/Web/Events/wheel 此页面还为旧浏览器提供polyfills https://developer.mozilla.org/en-US/docs/Web/Events/wheel

Badri is right, you should use "DOMMouseScroll" instead for firefox. Badri是对的,你应该使用“DOMMouseScroll”代替firefox。 Addition to this, for delta you need to use event.originalEvent.detail instead of event.originalEvent.wheelDelta. 除此之外,对于delta,您需要使用event.originalEvent.detail而不是event.originalEvent.wheelDelta。 For down, event.originalEvent.detail gives positive value whereas event.originalEvent.wheelDelta gives negative value and vice versa. 对于down,event.originalEvent.detail给出正值,而event.originalEvent.wheelDelta给出负值,反之亦然。

 $(stage.content).on('mousewheel DOMMouseScroll', zoomHelper.zoom);   

 if (navigator.userAgent.toLowerCase().indexOf('firefox') > -1) {
            if (event.originalEvent.detail > 0) {
                //scroll down
                delta = 0.2;
            } else {
                //scroll up
                delta = 0;
            }
        } else {
            if (event.originalEvent.wheelDelta < 0) {
                //scroll down
                delta = 0.2;
            } else {
                //scroll up
                delta = 0;
            }
        }

JSFiddle (Works in IE 11, Firefox 33 and Chrome 38, I did not test other browsers): http://jsfiddle.net/rpaul/ckwu7u86/3/ JSFiddle(适用于IE 11,Firefox 33和Chrome 38,我没有测试其他浏览器): http//jsfiddle.net/rpaul/ckwu7u86/3/

或者只使用jquery-mousewheel jQuery插件。

This seems to work in Safari, Chrome, and Firefox (I have not tested it in IE): 这似乎适用于Safari,Chrome和Firefox(我还没有在IE中测试过):

 // For Chrome window.addEventListener('mousewheel', mouseWheelEvent); // For Firefox window.addEventListener('DOMMouseScroll', mouseWheelEvent); function mouseWheelEvent(e) { var delta = e.wheelDelta ? e.wheelDelta : -e.detail; console.log(delta); } 

From: http://www.h3xed.com/programming/javascript-mouse-scroll-wheel-events-in-firefox-and-chrome 来自: http//www.h3xed.com/programming/javascript-mouse-scroll-wheel-events-in-firefox-and-chrome

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM