UNPKG

1.92 kBJavaScriptView Raw
1/**
2 * Copyright 2013-present, Facebook, Inc.
3 * All rights reserved.
4 *
5 * This source code is licensed under the BSD-style license found in the
6 * LICENSE file in the root directory of this source tree. An additional grant
7 * of patent rights can be found in the PATENTS file in the same directory.
8 *
9 */
10
11'use strict';
12
13var SyntheticMouseEvent = require('./SyntheticMouseEvent');
14
15/**
16 * @interface WheelEvent
17 * @see http://www.w3.org/TR/DOM-Level-3-Events/
18 */
19var WheelEventInterface = {
20 deltaX: function (event) {
21 return 'deltaX' in event ? event.deltaX : // Fallback to `wheelDeltaX` for Webkit and normalize (right is positive).
22 'wheelDeltaX' in event ? -event.wheelDeltaX : 0;
23 },
24 deltaY: function (event) {
25 return 'deltaY' in event ? event.deltaY : // Fallback to `wheelDeltaY` for Webkit and normalize (down is positive).
26 'wheelDeltaY' in event ? -event.wheelDeltaY : // Fallback to `wheelDelta` for IE<9 and normalize (down is positive).
27 'wheelDelta' in event ? -event.wheelDelta : 0;
28 },
29 deltaZ: null,
30
31 // Browsers without "deltaMode" is reporting in raw wheel delta where one
32 // notch on the scroll is always +/- 120, roughly equivalent to pixels.
33 // A good approximation of DOM_DELTA_LINE (1) is 5% of viewport size or
34 // ~40 pixels, for DOM_DELTA_SCREEN (2) it is 87.5% of viewport size.
35 deltaMode: null
36};
37
38/**
39 * @param {object} dispatchConfig Configuration used to dispatch this event.
40 * @param {string} dispatchMarker Marker identifying the event target.
41 * @param {object} nativeEvent Native browser event.
42 * @extends {SyntheticMouseEvent}
43 */
44function SyntheticWheelEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {
45 return SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);
46}
47
48SyntheticMouseEvent.augmentClass(SyntheticWheelEvent, WheelEventInterface);
49
50module.exports = SyntheticWheelEvent;
\No newline at end of file