Firefox利用DOMMouseScroll,其他的浏览器利用mousewheel。
滚动事宜触发时Firefox利用detail属性捕捉滚轮信息,其他的浏览器利用wheelDelta。
不知道为何在该问题上其他厂商和微软的如此同等。
Firefox可以利用addEventListener方法绑定DomMouseScroll事宜。

elem.addEventListener(‘DOMMouseScroll’, func, false);IE和其他的主流浏览器可以利用传统的事宜绑定模型。
但不要利用IE专有的attachEvent方法,其他主流浏览器并不识别微软的这个方法。

Firefox 鼠标滚轮向上滚动是-3,向下滚动是3

html按钮设置鼠标事件监听事件HTML中鼠标滚轮事宜onmousewheel处置 Webpack

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办法添加事宜

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/Chromex

下面两个参数可以获取滚动的位置

document.documentElement.scrollTop:垂直方向

document.documentElement.scrollLeft:水平方向

放入监听事宜后就可以在鼠标滑轮滚动时给一些元素设置浮动样式

如头条号的揭橥文章界面:

下滑前

下滑后:

下滑后