元素:DOMMouseScroll 事件

已弃用:此功能不再推荐。尽管某些浏览器可能仍然支持它,但它可能已从相关的 Web 标准中删除,或者正在被删除的过程中,或者仅出于兼容性目的而保留。避免使用它,并尽可能更新现有代码;请参阅此页面底部的兼容性表格,以指导您的决策。请注意,此功能可能随时停止工作。

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

DOM 的 DOMMouseScroll 事件在鼠标滚轮或类似设备操作且自上次事件以来累积的滚动量超过 1 行或 1 页时异步触发。它由 MouseScrollEvent 接口表示。此事件仅由 Firefox 实现。您应该改用标准的 wheel 事件。

如果要阻止鼠标滚轮事件的默认操作,仅在 Gecko 上处理此事件是不够的,因为如果原生鼠标滚轮事件的滚动量小于 1 行(或当系统设置按页滚动时小于 1 页),则其他鼠标滚轮事件可能会在没有此事件的情况下触发。

在 Gecko 17(Firefox 17)或更高版本中,您需要调用必须为每个原生事件触发的 wheel 事件的 preventDefault()

如果可用,请使用标准化的 wheel 事件。

语法

在诸如 addEventListener() 的方法中使用事件名称,或设置事件处理程序属性。

js
addEventListener("DOMMouseScroll", (event) => {});

onDOMMouseScroll = (event) => {};

事件类型

事件属性

除了标准事件之外,此事件只有一个额外的属性。

detail

detail 属性更精确地描述了滚动,正值表示向下滚动,负值表示向上滚动。

如果事件表示向上滚动一页,则 detail 的值为 -32768。如果事件表示向下滚动一页,则值为 +32768。任何其他值都表示滚动的行数,方向由值的符号指示。

注意: 可信事件永远不会发送 detail 值为 0 的情况。

可信事件永远不会触发值为 0 的情况。

注意: 如果平台的原生鼠标滚轮事件仅以像素提供滚动距离,或者速度可以由用户自定义,则该值将使用事件目标最近的可滚动祖先元素的行高进行计算。如果该元素的字体大小小于 mousewheel.min_line_scroll_amount,则使用该首选项的值作为行高。

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅

  • MouseScrollEvent
  • Gecko 的旧版像素滚动事件:MozMousePixelScroll
  • 非 Gecko 浏览器的旧版鼠标滚轮事件:mousewheel
  • 标准化的滚轮事件:wheel