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

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

?View Code JAVASCRIPT
window.onmousewheel=document.onmousewheel=scrollFunc;//IE/Opera/Chrome

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

?View Code JAVASCRIPT
/*注册事件*/
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,其中正数表示为向上,负数表示向下。

?View Code JAVASCRIPT
<p><label for="wheelDelta">滚动值:</label>(IE/Opera)<input type="text" id="wheelDelta" /></p>
<p><label for="detail">滚动值:(Firefox)</label><input type="text" id="detail" /></p>
<script type="text/javascript">
var oTxt=document.getElementById("txt");
/***********************
* 函数:判断滚轮滚动方向
* 作者:walkingp
* 参数:event
* 返回:滚轮方向 1:向上 -1:向下
*************************/
var scrollFunc=function(e){
    var direct=0;
    e=e || window.event;
 
    var t1=document.getElementById("wheelDelta");
    var t2=document.getElementById("detail");
    if(e.wheelDelta){//IE/Opera/Chrome
        t1.value=e.wheelDelta;
    }else if(e.detail){//Firefox
        t2.value=e.detail;
    }
    ScrollText(direct);
}
/*注册事件*/
if(document.addEventListener){
    document.addEventListener('DOMMouseScroll',scrollFunc,false);
}//W3C
window.onmousewheel=document.onmousewheel=scrollFunc;//IE/Opera/Chrome/Safari
</script>

点击预览效果

Chrome

Firefox

IE(8)

IE(6)

 

Opera

Safari

Related posts:

  1. js 仿Photoshop鼠标滚轮控制输入框取值(修正兼容Chrome) js 仿Photoshop鼠标滚轮控制输入框取值。原理是监听鼠标滚轮事件;可将此效果继续发散到其他应用上,如图片缩放,页面缩放等。...
  2. 如何检查浏览器类型 使用检查navigator.userAgent字符串来判断浏览器类型。今天在看一篇文章中提到用户在某些浏览器可以更改userAgent,这样就不能单纯使用这个方法来检查浏览器。在实际使用中一般检查最多的是ie浏览器与标准dom浏览器的区别,这样可以使用window.addEventListener来判断这两种类型的浏览器...
  3. js中的冒泡事件与事件监听 js中“冒泡事件”并不是能实际使用的花哨技巧,它是一种对js事件执行顺序的机制,“冒泡算法”在编程里是一个经典问题,冒泡算法里面的冒泡应该说是交换更加准确;js里面的“冒泡事件”才是真正意义上的“冒泡”,它从DOM最低层逐层遍历树,然后附加相应事件。...
  4. ie与ff下的event event是ie自带的一个对象,而ff中不存在该对象,只能通过传递参数的方式来模拟event,:( 另外ie中使用srcElement去获得事件触发源,ff下使用target。因此使用这两个对象时需要做相关的浏览器兼容。 ...
  5. ie中的onreadystatechange问题 ie中的onreadystatechange是非常好的一个函数,它代表所有dom元素框架加载完毕后执行,onload是要等到所有dom元素的所有东西完全加载后执行,例如网页中有一张很大的图片,那个使用onreadystatechange就是页面一把最基本的框架加载完毕就执行,而 onload则要等到那张图片下载完成后才开始执行。这样的话可能会出现一些问题,如我之前使用使用js制作导航条的滑动门,但是我放在了相关的html 元素之后,我瞬间鼠标移到元素上就会发生js报错,“无法找到对象”;使用onload也会出现这种情况。于是这时 document.onreadystatechange就非常符合这种应用场合。...

以上关联文章由 Yet Another Related Posts Plugin 提供支持。