1

请看下面的代码:

<script type="text/javascript">
var scrollFunc=function(e){
    var direct=0;
    e=e || window.event;

    if(e.wheelDelta){//IE/Opera/Chrome 
        userMouse(e.wheelDelta);
    }else if(e.detail){//Firefox
        userMouse(e.wheelDelta);
    }
}

if(document.addEventListener){
    document.addEventListener('DOMMouseScroll',scrollFunc,false);
}//W3C

window.onmousewheel=document.onmousewheel=scrollFunc;//IE/Opera/Chrome/Safari

function userMouse(flage){
    if(flage == 3){
        alert("firefox UP!");
    }else if(flage == -3){
        alert("firefox DOWN!");
    }else if(flage == 120){
        alert("IE UP!");
    }else if(flage == -120){
        alert("IE DOWN!");
    }
}
</script>

问题是:如果我滚动一次鼠标滚轮,它会在 Firefox 中提示一次,但在 IE/Chrome/Opera 中会提示两次。我认为这是内核问题,对吧?我该如何解决?

4

1 回答 1

3

这是你的罪魁祸首:

window.onmousewheel=document.onmousewheel=scrollFunc;

在 IE、Chrome、Opera 和 Safari 中,您正在处理onmousewheel.documentwindow.

您只能在 Firefox 中看到一个警报,因为您只在此行处理document'事件:onmousewheel

 if(document.addEventListener){
      document.addEventListener('DOMMouseScroll',scrollFunc,false);
 }
于 2012-12-27T04:34:50.953 回答