This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
The WheelEvent.deltaMode read-only property returns an unsigned long representing the unit of the delta values scroll amount. Permitted values are:
| Constant | Value | Description |
|---|---|---|
DOM_DELTA_PIXEL | 0x00 | The delta values are specified in pixels. |
DOM_DELTA_LINE | 0x01 | The delta values are specified in lines. |
DOM_DELTA_PAGE | 0x02 | The delta values are specified in pages. |
You must check the deltaMode property to determine the unit of the deltaX, deltaY, and deltaZ values. Do not assume that those values are specified in pixels. Some browsers, for compatibility reasons, may return different units for the delta* values depending on whether deltaMode has been accessed, to accommodate for websites not explicitly checking the deltaMode property.
An unsigned long.
const syntheticEvent = new WheelEvent("syntheticWheel", {
deltaX: 4,
deltaMode: 0,
});
console.log(syntheticEvent.deltaMode);
| Specification |
|---|
| UI Events> # dom-wheelevent-deltamode> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
deltaMode |
26 | 12 | 17 | 15 | 7 | 26 | 17 | 14 | 7 | 1.0 | 4.4 | 7 |
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent/deltaMode