Re: [w3c/uievents] Needs alternative WheelEvent.deltaMode, WheelEvent.delta(X|Y|Z) (#181)

After conducting a [survey on wheel deltas](https://docs.google.com/spreadsheets/d/1YBTbMSq12_6jmXGm7GJi11RCatYTGk_WkOtfBptgqKI), I found the deprecated `wheelDelta*` properties are generally more consistent across platforms and browsers.
Motivated by these findings we updated the web app mentioned above to use `wheelDelta*` properties, except on Apple systems (macOS, iOS, iPadOS, ...) for which we still use `delta*` properties.

Example:
```js
function getWheelDelta(event) {
  if (isApple) {
    // Note that deltaMode MUST be accessed BEFORE delta* in order to get
    // non-pixel values in Firefox.
    // See https://github.com/w3c/uievents/issues/181

    switch (event.deltaMode) {
    default:
    case event.DOM_DELTA_PIXEL:
      return [event.deltaX / 120, -event.deltaY / 120];
    case event.DOM_DELTA_LINE:
    case event.DOM_DELTA_PAGE:
      // Discard the delta value, just take the sign
      return [Math.sign(event.deltaX), Math.sign(-event.deltaY)];
    }
  } else {
    return [-event.wheelDeltaX / 120, event.wheelDeltaY / 120];
  }
}
```

-- 
Reply to this email directly or view it on GitHub:
https://github.com/w3c/uievents/issues/181#issuecomment-2228196131
You are receiving this because you are subscribed to this thread.

Message ID: <w3c/uievents/issues/181/2228196131@github.com>

Received on Monday, 15 July 2024 10:39:36 UTC