Element: mousewheel 事件

已棄用:此特性不再推薦。雖然某些瀏覽器可能仍然支援它,但它可能已經從相關的網路標準中刪除,可能正在刪除過程中,或者可能僅為相容性目的而保留。請避免使用它,如果可能,請更新現有程式碼;請參閱本頁底部的相容性表格以指導您的決策。請注意,此特性可能隨時停止工作。

非標準:此特性未標準化。我們不建議在生產環境中使用非標準特性,因為它們瀏覽器支援有限,並且可能會更改或被移除。但是,在沒有標準選項的特定情況下,它們可以是合適的替代方案。

當滑鼠滾輪或類似裝置操作時,非同步觸發的已廢棄非標準mousewheel 事件會向 Element 提供更新。mousewheel 事件從未成為任何標準的一部分,儘管它被一些瀏覽器實現,但從未被 Firefox 實現。

注意: 請使用標準的 wheel 事件來代替這個已廢棄的事件。

語法

在諸如 addEventListener() 之類的方法中使用事件名稱,或設定事件處理程式屬性。

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

onmousewheel = (event) => { }

事件型別

一個 WheelEvent。繼承自 MouseEventUIEventEvent

Event UIEvent MouseEvent WheelEvent

事件屬性

此介面繼承了其祖先 MouseEventUIEventEvent 的屬性。

WheelEvent.deltaX 只讀

返回一個表示水平滾動量的 double 值。

WheelEvent.deltaY 只讀

返回一個表示垂直滾動量的 double 值。

WheelEvent.deltaZ 只讀

返回一個表示 z 軸滾動量的 double 值。

WheelEvent.deltaMode 只讀

返回一個 unsigned long,表示 delta* 值的滾動量單位。允許的值有:

常量 描述
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,它使用 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。這使得行為與 Windows 上的 IE 和 Chrome 相同。

在 Mac 上,該值很複雜。如果導致原生滾輪事件的裝置支援連續滾動,該值會發生變化。

如果裝置支援連續滾動(例如 MacBook 的觸控板或可以平滑轉動的滑鼠滾輪),則該值是根據加速滾動量計算的。在這種情況下,該值與 Safari 相同。

如果裝置支援連續滾動(通常是不能平滑轉動的舊滑鼠滾輪),則該值是根據非加速滾動量(每檔 120)計算的。在這種情況下,該值與 Safari 不同。

這種差異給 Web 應用程式開發人員帶來了嚴重的問題。也就是說,Web 開發人員無法知道 mousewheel 事件是由哪個裝置引起的。

Safari

該值總是根據加速滾動量計算的。這與其他瀏覽器(除了支援連續滾動的 Chrome)完全不同。

Opera (Presto)

該值始終是 detail 屬性值 ✕ 40

在 Windows 上,由於 detail 屬性值是根據實際滾動量計算的,因此該值與其他瀏覽器不同,除非系統設定中每檔滾動量為 3 行或一頁。

在 Linux 上,每個原生滾輪事件的值為 80-80。這與其他瀏覽器不同。

在 Mac 上,detail 屬性值是根據原生事件的加速滾動量計算的。該值通常遠大於 Safari 或 Chrome 的值。

規範

不屬於任何規範。

瀏覽器相容性

另見

  • 應使用標準的 wheel 事件來監聽。