滚轮事件

IE、chrome、opera、safari 都使用 mousewheel 事件,Firefox 比较特殊,它要使用DOMMouseScroll 事件。 另外Firefox 使用detail判断滚轮上下,其它使用wheelDelta

•Firefox 鼠标滚轮向上滚动是-3,向下滚动是3 •IE、chrome、opera 鼠标滚轮向上滚动是120,向下滚动是-120 •Safari 鼠标滚轮向上滚动是360,向下滚动是-360

所以我们通过如下代码判断滚轮的方向:

$(window).bind('mousewheel DOMMouseScroll', function(event){
    if (event.originalEvent.wheelDelta > 0 || event.originalEvent.detail < 0) {
        // scroll up
    }
    else {
        // scroll down
    }
});

注意:jQuery为了跨浏览器一致性,会将的以下属性归一化:

  • target
  • relatedTarget
  • pageX
  • pageY
  • which
  • metaKey

要访问上面未列出的事件属性,需要使用 event.originalEvent

此外还可以使用jquery-mousewheel插件。

Licensed under CC BY-NC-SA 4.0