1

我正在使用 JQuery 来检测鼠标滚轮是向上还是向下滚动,它适用于除 Firefox 之外的所有浏览器,它似乎总是认为它在向下滚动。任何帮助表示赞赏!

$('html,body').bind('DOMMouseScroll mousewheel', function(e){
    if (e.originalEvent.wheelDelta /120 > 0) {
        alert('scrolling up !');
    }
    else {
        alert('scrolling down !');
    }
});

JSFiddle:http: //jsfiddle.net/Qvs2r/1/

4

2 回答 2

3

在条件之前添加:

var theEvent = e.originalEvent.wheelDelta || e.originalEvent.detail*-1

而你的条件

if ( theEvent /120 > 0)

*-1是不是因为不知何故,Firefox 反转了滚动值。

于 2013-05-29T19:36:48.740 回答
0

尝试这个:

var mousewheelevt=(/Firefox/i.test(navigator.userAgent))? "DOMMouseScroll" : "mousewheel" //FF doesn't recognize mousewheel as of FF3.x

if (document.attachEvent) //if IE (and Opera depending on user setting)
    document.attachEvent("on"+mousewheelevt, function(e){alert('Mouse wheel movement detected!')})
else if (document.addEventListener) //WC3 browsers
    document.addEventListener(mousewheelevt, function(e){alert('Mouse wheel movement detected!')}, false)

编辑:没关系,我只是注意到你有那个。我认为问题出在第一个 IF 语句中。您应该在 Firebug 中调试它并查看 e 的值。

于 2013-05-29T19:32:46.777 回答