鼠标滚轮事件

来源:互联网 发布:2015年淘宝女装排行榜 编辑:程序博客网 时间:2024/06/06 18:40

做前端的最难的就是要做的每种浏览器都兼容,往往我们只能做到其中一种是兼容,而且就一种浏览器而言也是有不同的版本,也并非是每个版本都是能够做到兼容,今天就遇到了一个很闹心的问题,同样的一段代码,在ie上能够完美运行,在谷歌上却不好使了,下面带大家看看鼠标的滚轮事件。

原生的滚轮事件:火狐与其他浏览器使用了不同的事件

/* 
 * 滚轮事件只有firefox比较特殊,使用DOMMouseScroll; 其他浏览器使用mousewheel;
 * 
*/
// firefox
document.body.addEventListener("DOMMouseScroll", function(event) {


    var direction= event.detail && (event.detail > 0 ? "mousedown" : "mouseup");
    console.log(direction);    
});


// chrome and ie
document.body.onmousewheel = function (event) {
    event = event || window.event;


    var direction = event.wheelDelta && (event.wheelDelta > 0 ? "mouseup" : "mousedown");
    console.log(direction);
};

使用jquery兼容后的事件

// jquery 兼容的滚轮事件
$(document).on("mousewheel DOMMouseScroll", function (e) {
    
    var delta = (e.originalEvent.wheelDelta && (e.originalEvent.wheelDelta > 0 ? 1 : -1)) ||  // chrome & ie
                (e.originalEvent.detail && (e.originalEvent.detail > 0 ? -1 : 1));              // firefox


    
    if (delta > 0) {
        // 向上滚
        console.log("wheelup");
    } else if (delta < 0) {
        // 向下滚
        console.log("wheeldown");
    }
});