元素: mousewheel 事件
已弃用: 此功能不再推荐。尽管一些浏览器可能仍然支持它,但它可能已被从相关 Web 标准中删除,或者正在被删除过程中,或者可能仅出于兼容性目的保留。避免使用它,并尽可能更新现有代码;请参阅本页底部兼容性表来指导您的决定。请注意,此功能可能随时停止工作。
非标准: 此功能是非标准的,并且不在标准轨道上。不要在面向 Web 的生产站点上使用它:它不会对每个用户都起作用。实施之间也可能存在很大的不兼容性,并且行为可能会在将来发生改变。
过时 和 非标准 的 mousewheel
事件是异步地在一个元素
上触发的,以便在鼠标滚轮或类似设备操作时提供更新。mousewheel
事件从未成为任何标准的一部分,尽管它被几个浏览器实现,但从未被 Firefox 实现。
注意: 请使用标准的 wheel
事件,而不是此已过时的事件。
语法
在诸如 addEventListener()
之类的 方法中使用事件名称,或设置事件处理程序属性。
addEventListener("mousewheel", (event) => {});
onmousewheel = (event) => {};
事件类型
一个 WheelEvent
。继承自 MouseEvent
、UIEvent
和 Event
。
事件属性
此接口从其祖先 MouseEvent
、UIEvent
和 Event
继承属性。
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_MOUSEWHEEL
或 WM_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
事件。