html中⿏标滚轮事件onmousewheel的处理⽅法
滚轮事件是不同浏览器会有⼀点点区别,⼀个像Firefox使⽤DOMMouseScroll ,ff也可以使⽤addEventListener⽅法绑定DomMouseScroll事件,其他的浏览器滚轮事件使⽤mousewheel,下⾯我来给⼤家
具体介绍。
Firefox使⽤DOMMouseScroll,其他的浏览器使⽤mousewheel。滚动事件触发时Firefox使⽤detail属性捕捉滚轮信息,其他的浏览器使⽤wheelDelta。不知道为何在该问题上其他⼚商和微软的如此⼀
致。Firefox可以使⽤addEventListener⽅法绑定DomMouseScroll事件。
elem.addEventListener(‘DOMMouseScroll', func, false);IE和其他的主流浏览器可以使⽤传统的事件绑定模型。但不要使⽤IE专有的attachEvent⽅法,其他主流浏览器并不识别微软的这个⽅法。
Firefox ⿏标滚轮向上滚动是-3,向下滚动是3
IE ⿏标滚轮向上滚动是120,向下滚动是-120
Safari ⿏标滚轮向上滚动是360,向下滚动是-360
Opera ⿏标滚轮向上滚动是120,向下滚动是-120
退税一般要多久才能到账Chrome ⿏标滚轮向上滚动是120,向下滚动是-120
有⼈在Safari下做了⼀些测试:”只是滚动⼀圈的话,值为+-0.1,如果滚动地稍微快点的话(多滚动⼏圈),这个值也会变⼤。这是因为Mac OS下有⿏标滚轮加速功能。滚动⼀次,浏览器滚动1像素,滚自你离开以后
动3次,浏览器却滚动30像素”。同时他也对Camino(基于Gecko的内核引擎)进⾏研究:“与Safari相似(+- 0.3 to +-Infinity),虽然使⽤了与firefox相同的内核引擎,但结果这个delta值却只在+-
2.666666⾥浮动,⽆论滚动速度如何
其中经我测试,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⽅式添加事件
其中除Firefox外其余均可使⽤HTML DOM⽅式添加事件,因此添加事件使⽤以下⽅式
/*注册事件*/
if(document.addEventListener){
document.addEventListener('DOMMouseScroll',scrollFunc,false);
}//W3C
detail与wheelDelta
判断滚轮向上或向下在浏览器中也要考虑兼容性,现在五⼤浏览器(IE、Opera、 Safari、Firefox、Chrome)中Firefox 使⽤detail,其余四类使⽤wheelDelta;两者只在取值上不⼀致,代表含义⼀
致,detail与wheelDelta只各取两个值,detail只取±3,wheelDelta只取±120,其中正数表⽰为向上,负数表⽰向下。
<p ><label for="wheelDelta"> 滚动值:</label>(IE/Opera)<input type="text" id="wheelDelta" border-width:0px; padding-top:0px; padding-bottom:0px; margin-top:0px; margin-bottom:8px; list-style:none; text-indent:2em"><label for="detail"> 滚动值:(Firefox)</label><input type="text" id="detail" text/javascript">
var oTxt = ElementById("txt");
var scrollFunc = function (e) {德芙巧克力
走砍var direct = 0;
ee = e || window.event;
var t1 = ElementById("wheelDelta");
var t2 = ElementById("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
<p></script></p>
以上就是⼩编为⼤家带来的html中⿏标滚轮事件onmousewheel的处理⽅法全部内容了,希望⼤家多多⽀持~
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论