当我尝试更改默认的滚动条属性时,我发现通过重写scroll()
或onscroll
事件的回调函数并不方便,相反,我应该为“onwheel”事件重写一个回调函数。
那么onwheel
和onscroll
之间有什么区别呢?我想浏览器的默认onwheel
处理程序会自动触发onscroll
函数来移动滚动条,这就是为什么在onwheel
的回调中调用preventDefault
将阻止滚动条移动。我是对的吗?谁能给出更好、更具体的解释?
当我尝试更改默认的滚动条属性时,我发现通过重写scroll()
或onscroll
事件的回调函数并不方便,相反,我应该为“onwheel”事件重写一个回调函数。
那么onwheel
和onscroll
之间有什么区别呢?我想浏览器的默认onwheel
处理程序会自动触发onscroll
函数来移动滚动条,这就是为什么在onwheel
的回调中调用preventDefault
将阻止滚动条移动。我是对的吗?谁能给出更好、更具体的解释?
onwheel
事件在鼠标滚轮滚动时触发。 onscroll
事件在任何类型的滚动时触发,包括键盘按钮如箭头键,Home,End,Page Up,Page Down,空格键,制表符等。
请注意,onwheel
是非标准的,除非您专门针对支持它的浏览器并/或提供一个其缺失不会被感知的额外功能,否则应将其避免使用。
onwheel
确实是标准的一部分。 - DanielMonwheel
: 当鼠标滚轮在元素上向上或向下滚动时发生。
onscroll
:当元素的滚动条被滚动时发生。
需要注意的是,在Internet Explorer中,仅通过addEventListener
支持滚轮事件。不能使用onwheel
事件属性。
onwheel
不适用于Safari或IE8或更早版本。
onwheel
在其中起作用。 - Moritzonwheel
事件在滚动和缩放时触发,当你移动鼠标滚轮时,而onscroll
事件仅在元素的滚动条被滚动时发生(我相信这也包括触摸滚动)。
非标准特性
此特性为非标准特性,不在标准跟踪中。不要在面向 Web 的生产站点上使用它:它将无法为每个用户工作。实现之间可能存在大量不兼容性,并且行为可能会在未来发生变化。
当鼠标滚轮滚动时,触发onwheel
事件。这种物理操作可能也会导致滚动事件。
基本上,您需要使用onscroll
。
onwheel
?我以前从没见过这个词啊 o.O - Cerbrusonwheel
事件的说明:"非标准 该功能是非标准的,不在标准轨道上。不要在面向Web的生产网站上使用它:它不适用于每个用户。在不同实现之间可能存在很大的不兼容性,并且行为将来可能会更改。" - Cerbrus