我正在使用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/
答案 0 :(得分:3)
在您出现条件之前添加此内容:
var theEvent = e.originalEvent.wheelDelta || e.originalEvent.detail*-1
你的条件
if ( theEvent /120 > 0)
*-1
因为某种原因,firefox会反转滚动值。
答案 1 :(得分: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保存的值。