" onwheel"之间的区别是什么?和" onscroll"事件?

时间:2015-09-22 14:23:34

标签: javascript jquery browser

当我尝试更改默认滚动条属性时,我发现通过重写scroll()onscroll事件的回调函数不方便,相反,我应该重写一个回调函数for" onwheel"事件

那么onwheelonscroll之间的区别是什么?我认为浏览器的默认onwheel处理程序会自动触发onscroll函数来移动滚动条,这就是preventDefault回调中onwheel将阻止滚动的原因酒吧搬家。我对吗?谁有更好更具体的解释?

4 个答案:

答案 0 :(得分:7)

旋转鼠标滚轮时,

onwheel 特别会触发onscroll会触发任何类型的滚动,包括箭头键,Home,End,Page Up,Page Down,空格键,标签等键盘按钮。

请注意onwheel是非标准的,应该避免使用,除非您专门针对支持它的浏览器和/或提供额外功能,否则将无法感受到。

答案 1 :(得分:2)

onwheel:当鼠标滚轮在元素上向上或向下滚动时发生。

onscroll在滚动元素的滚动条时发生。

值得注意的是,在Internet Explorer中,只有addEventListener支持滚轮事件。您无法使用onwheel事件属性。

onwheel无法在Safari或IE8或更早版本中使用。

答案 2 :(得分:1)

MDN about onwheel:

  

非标
  此功能是非标准功能,不符合标准。不要在面向Web的生产站点上使用它:它不适用于每个用户。实现之间可能存在很大的不兼容性,并且行为可能在将来发生变化。

滚动鼠标滚轮时会触发onwheel事件。此物理操作可能也可能不会导致滚动事件。

基本上,onscroll就是您所需要的。

答案 3 :(得分:0)

当您移动鼠标滚轮时,onwheel事件会在滚动和缩放时触发,而onscroll事件仅在滚动元素的滚动条时发生(我相信还包括触摸滚动) )。