元素: mousewheel 事件

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

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

过时非标准mousewheel 事件是异步地在一个元素 上触发的,以便在鼠标滚轮或类似设备操作时提供更新。mousewheel 事件从未成为任何标准的一部分,尽管它被几个浏览器实现,但从未被 Firefox 实现。

注意: 请使用标准的 wheel 事件,而不是此已过时的事件。

语法

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

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

onmousewheel = (event) => {};

事件类型

事件属性

此接口从其祖先 MouseEventUIEventEvent 继承属性。

WheelEvent.deltaX 只读

返回一个表示水平滚动量的 double

WheelEvent.deltaY 只读

返回一个表示垂直滚动量的 double

WheelEvent.deltaZ 只读

返回一个表示 z 轴滚动量的 double

WheelEvent.deltaMode 只读

返回一个表示 delta* 值的滚动量单位的 unsigned long。允许的值是

常量 描述
WheelEvent.DOM_DELTA_PIXEL 0x00 delta* 值以像素为单位指定。
WheelEvent.DOM_DELTA_LINE 0x01 delta* 值以行为单位指定。每次鼠标点击都会滚动一行内容,其中计算行高的方法取决于浏览器。
WheelEvent.DOM_DELTA_PAGE 0x02 delta* 值以页面为单位指定。每次鼠标点击都会滚动一页内容。
WheelEvent.wheelDelta 只读 已弃用

返回一个表示以像素为单位的距离的整数(32 位)。

WheelEvent.wheelDeltaX 只读 已弃用

返回一个表示水平滚动量的整数。

WheelEvent.wheelDeltaY 只读 已弃用

返回一个表示垂直滚动量的整数。

detail 属性

detail 属性的值始终为零,除了在 Opera 中,Opera 使用 detail 的方式类似于 Firefox 专有的 DOMMouseScroll 事件的 detail 值,该值指示以行为单位的滚动距离,负值表示滚动方向为向下或向右,正值表示滚动方向为向上或向左。

注意: 在 macOS 上,滚动距离(因此 detail 的值)是根据加速滚动距离计算的。

在 Linux 上,每个本机滚轮事件都设置 2-2

wheelDelta、wheelDeltaX 和 wheelDeltaY 值

wheelDelta 属性值是一个抽象值,它指示滚轮旋转了多少。如果滚轮旋转远离用户,则为正,否则为负。这意味着 delta 值的符号与 DOM Level 3 Event 的 wheel 不同。但是,这些值的量在不同的浏览器之间意义不同。有关详细信息,请参见以下说明。

IE 和 Opera (Presto) 仅支持 wheelDelta 属性,不支持 水平滚动。

wheelDeltaX 属性值指示水平轴上的 wheelDelta 属性值。当用户操作设备向右滚动时,该值为负。否则,即如果向左滚动,该值为正。

wheelDeltaY 属性值指示垂直轴上的 wheelDelta 属性值。该值的符号与 wheelDelta 属性值相同。

Chrome

在 Windows 上,该值与 WM_MOUSEWHEELWM_MOUSEHWHEEL 的 delta 值相同。此外,即使系统设置的滚动量为页面滚动,该值也不会改变,即该值与 Windows 上的 IE 相同。

在 Linux 上,每个本机滚轮事件的值为 120-120。这使得 IE 和 Chrome 在 Windows 上的行为相同。

在 Mac 上,该值很复杂。如果导致本机滚轮事件的设备支持连续滚动,则该值会改变。

如果设备支持连续滚动(例如 MacBook 的触控板或可以平滑滚动的鼠标滚轮),则该值由加速滚动量计算得出。在这种情况下,该值与 Safari 相同。

如果设备不支持连续滚动(通常是不能平滑滚动的旧鼠标滚轮),则该值由非加速滚动量(每级 120)计算得出。在这种情况下,该值与 Safari 不同。

这种差异给 Web 应用程序开发人员带来了一个严重的问题。也就是说,Web 开发人员无法知道 mousewheel 事件是由哪个设备引起的。

Safari

该值始终由加速滚动量计算得出。这与其他浏览器有很大不同,除了 Chrome 支持连续滚动的设备。

Opera (Presto)

该值始终为 detail 属性值 ✕ 40

在 Windows 上,由于 detail 属性值由实际滚动量计算得出,因此该值与其他浏览器不同,除非每级的滚动量为系统设置中的 3 行或一页。

在 Linux 上,每个本机滚轮事件的值为 80-80。这与其他浏览器不同。

在 Mac 上,detail 属性值由本机事件的加速滚动量计算得出。该值通常远大于 Safari 或 Chrome 的值。

规范

不是任何规范的一部分。

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参见

  • 要侦听的标准 wheel 事件。