当前位置:首页 > 开发 > Web前端 > JavaScript > 正文

js中鼠标滚轮事件跨浏览器详解

发表于: 2013-05-09   作者:bohaiwaiwai   来源:转载   浏览次数:
摘要: 其中经我测试,IE/Opera属于同一类型,使用attachEvent即可添加滚轮事件。          /*IE注册事件*/     if(document.attachEvent){         
其中经我测试,IE/Opera属于同一类型,使用attachEvent即可添加滚轮事件。

    
    /*IE注册事件*/
    if(document.attachEvent){

         document.attachEvent('onmousewheel',scrollFunc);
    }

Firefox使用addEventListener添加滚轮事件

    /*Firefox注册事件*/
    if(document.addEventListener){
        document.addEventListener('DOMMouseScroll',scrollFunc,false);
    }

Safari与Chrome属于同一类型,可使用HTML DOM方式添加事件

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

其中除Firefox外其余均可使用HTML DOM方式添加事件,因此添加事件使用以下方式

    /*注册事件*/
    if(document.addEventListener){
        document.addEventListener('DOMMouseScroll',scrollFunc,false);
    }//W3C
    window.onmousewheel=document.onmousewheel=scrollFunc;//IE/Opera/Chrome

detail与wheelDelta

判断滚轮向上或向下在浏览器中也要考虑兼容性,现在五大浏览器(IE、Opera、Safari、Firefox、Chrome)中Firefox 使用detail,其余四类使用wheelDelta;两者只在取值上不一致,代表含义一致,detail与wheelDelta只各取两个 值,detail只取±3,wheelDelta只取±120,其中正数表示为向上,负数表示向下。
复制代码
1 <p><label for="wheelDelta">  滚动值:</label>(IE/Opera)<input type="text" id="wheelDelta" /></p>
2  <p><label for="detail"> 滚动值:(Firefox)</label><input type="text" id="detail" /></p>
3  <script type="text/javascript">
4  var oTxt=document.getElementById("txt");
5 /***********************
6 * 函数:判断滚轮滚动方向
7 * 作者:walkingp
8 * 参数:event
9 * 返回:滚轮方向 1:向上 -1:向下
10 *************************/
11 var scrollFunc=function(e){
12     var direct=0;
13     e=e || window.event;
14   
15     var t1=document.getElementById("wheelDelta");
16     var t2=document.getElementById("detail");
17     if(e.wheelDelta){//IE/Opera/Chrome
18         t1.value=e.wheelDelta;
19     }else if(e.detail){//Firefox
20         t2.value=e.detail;
21     }
22     ScrollText(direct);
23 }
24 /*注册事件*/
25 if(document.addEventListener){
26     document.addEventListener('DOMMouseScroll',scrollFunc,false);
27 }//W3C
28 window.onmousewheel=document.onmousewheel=scrollFunc;//IE/Opera/Chrome/Safari
29 </script>

js中鼠标滚轮事件跨浏览器详解

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
所有的现代浏览器都支持鼠标滚轮,并且在用户滚动滚轮时触发时间。浏览器通常使用鼠标滚轮滚动或缩
由于年底马上就要做一个项目,可能要用到鼠标滚轮的应用,所以今天特地复习及总结一番。 首先我们先
在silverlight 中,我们可以通过js事件绑定方法addEventListener,往xaml文件中的UIElement 元素上
If e.Delta > 0 Then Label3.Content = Label3.Content + 1 Else Label3.Content = Label3.Conte
超好超全面的测试鼠标滚轮滚动事件案例 代码走起 <h1 id="banner">jQuery mousewheel.js - 测
这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,
这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,
源地址:http://www.cnblogs.com/2050/p/3191744.html 这里说的js跨域是指通过js在不同的域之间进行
框架中(iframe)的数据。只要协议、域名、端口有任何一个不同,都被当作是不同的域。 下表给出了相对
这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号