当我尝试更改默认滚动条属性时,我发现通过重写scroll()
或onscroll
事件的回调函数不方便,相反,我应该重写一个回调函数for" onwheel"事件
那么onwheel
和onscroll
之间的区别是什么?我认为浏览器的默认onwheel
处理程序会自动触发onscroll
函数来移动滚动条,这就是preventDefault
回调中onwheel
将阻止滚动的原因酒吧搬家。我对吗?谁有更好更具体的解释?
答案 0 :(得分:7)
onwheel
特别会触发。 onscroll
会触发任何类型的滚动,包括箭头键,Home,End,Page Up,Page Down,空格键,标签等键盘按钮。
请注意onwheel
是非标准的,应该避免使用,除非您专门针对支持它的浏览器和/或提供额外功能,否则将无法感受到。
答案 1 :(得分:2)
onwheel
:当鼠标滚轮在元素上向上或向下滚动时发生。
onscroll
在滚动元素的滚动条时发生。
值得注意的是,在Internet Explorer中,只有addEventListener
支持滚轮事件。您无法使用onwheel
事件属性。
onwheel无法在Safari或IE8或更早版本中使用。
答案 2 :(得分:1)
的非标强>
此功能是非标准功能,不符合标准。不要在面向Web的生产站点上使用它:它不适用于每个用户。实现之间可能存在很大的不兼容性,并且行为可能在将来发生变化。
滚动鼠标滚轮时会触发onwheel
事件。此物理操作可能也可能不会导致滚动事件。
基本上,onscroll
就是您所需要的。
答案 3 :(得分:0)
当您移动鼠标滚轮时,onwheel
事件会在滚动和缩放时触发,而onscroll
事件仅在滚动元素的滚动条时发生(我相信还包括触摸滚动) )。