所有现代浏览器都支持鼠标滚轮,并在用户滚动滚轮时触发时间。浏览器通常使用mousewheel来滚动或缩放文档,但是可以通过取消mousewheel事件来阻止这些默认操作。有一些互操作性问题会影响滚轮事件,但编写跨平台代码仍然可以。除了Firefox之外的所有浏览器都支持“mousewheel”事件,但Firefox使用的是“DOMMouseScroll”,而3级DOM事件规范草案建议使用事件名称“wheel”而不是“mousewheel”。
document . body . onmousewheel=function(event){ event=event | | window . event;console.dir(事件);}Firefox不支持mousewheel
document . body . addeventlistener(' domousescroll ',function(event){ console . dir(event);})下面的滚轮是chrome和IE9下面的控制台输出
以下是火狐下控制台通过滚轮向下滚动的输出
从上面的输出可以看出,mousewheel可以用非标准的DOMMouseScroll事件代替,wheelDetal可以用事件对象的detail属性代替。但是细节属性值的缩放比例和正负符号与wheelDetal不同,细节值乘以-40等于wheelDetal值。
在FireFox以外的浏览器中,是否上下滚动与下面的wheelDelta有关。
根据测试,在我的win7系统中,无论是IE7、IE10、Opera12还是safari5.1,每次向下滚动,event.wheelDelta的值都是-120。
对于FireFox浏览器(Opera浏览器也有),判断鼠标滚动方向的属性为event.detail,向下滚动值为3。
需要注意的是,FireFox浏览器的方向判断正负值与其他浏览器相反。在FireFox浏览器中向下滚动为正,而其他浏览器为负。
var IsFierFox=(navigator . user agent . indexof(' Firefox ')!==-1);if(IsFierFox){ element . AddEventListener(' DoMouseRoll ',wheelHandler,false);} element . onmousewheel=WheelHandler;//element . on wheel=wheelHandler;//测试后IE9不支持DOM3级别的滚轮事件,但Google和Firefox都支持。谷歌有一个wheelDelta,火狐有一个细节函数wheel handler(event){ event=event | | window . event;var delta=event . wheel delta | | detail *-30;}以上就是本文的全部内容,希望大家能喜欢。