鼠标滚轮事件封装

function MonseWheelhandle(obj,handle){
    var info = navigator.userAgent
    var down = null  //用来记录滚轮的上下,down = true 表示向下
    if(info.indexOf('Firefox') != -1){
        obj.addEventListener('DOMMouseScroll',function(event){
            var ev = event || window.event
            if(ev.detail>0){                
                //不作具体的事情
                down = true
            }else{
                down = false
            }
            //handle(down,ev)  //调用外部传递的事件处理程序
            handle.apply(obj,[down,ev])
            /* apply : 每一个函数都有一个自带的方法叫 apply ,这个方法可以切换函数的
             * 运行环境,如果函数需要传递参数,以数组的形式船司
             */
        },false)
    }else{
        obj.onmousewheel = function(event){
            var ev = event || window.event
            if(ev.wheelDelta>0){                
                //不作具体的事情
                down = false
            }else{
                down = true
            }
//            handle(down,ev);
//            handle.apply(obj,[down,ev])
            //call : 每个函数也都有一个 call 方法,它的功能和 apply 一样,都可以实现切换一个函数的调用者(运行环境)
            //call 和 apply 唯一的区别在于,函数有参数的时候,传递方式不一样,call 依次传递参数,参数用逗号隔开
            handle.call(obj,down,ev)
        }
    }
}

posted on 2016-11-22 20:44  on--the--way  阅读(88)  评论(0编辑  收藏  举报