“onwheel”和“onwheel”有什么区别?和“;onscroll"事件

What's the difference between "onwheel" and "onscroll" events?

本文关键字:onwheel 事件 onscroll quot 区别 什么      更新时间:2023-09-26

当我试图改变默认滚动条属性时,我发现通过为scroll()onscroll事件重写回调函数并不方便,相反,我应该为"onwheel"事件重写回调函数。

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

onwheel 特别是在鼠标滚轮旋转时触发。onscroll触发任何类型的滚动,包括键盘按钮,如箭头键,Home, End, Page Up, Page Down,空格键,tab等。

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

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

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

值得注意的是,在Internet Explorer中,wheel事件仅通过addEventListener支持。你不能使用onwheel事件属性。

onwheel在Safari或IE8或更早版本中不工作

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

MDN about onwheel:

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

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

基本上,onscroll就是你需要的。