“onwheel”和“onscroll”事件之间有什么区别?

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

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

当旋转鼠标滚轮时, onwheel 特意点火。 onscroll会触发任何类型的滚动,包括键盘按钮,如箭头键,Home,End,Page Up,Page Down,空格键,Tabbing等。

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

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

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

请注意,在Internet Explorer中,仅通过addEventListener支持wheel事件。 您不能使用onwheel事件属性。

onwheel在Safari或IE8或更早版本中不起作用。

关于onwheel MDN:

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

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

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

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