@samitouri / QOS-React-2 / commits / 4de2d39f63

Fix WheelEvent incorrectly inverting sign of deltaY

Andreas Svensson committed Jan 1, 2014 at 16:00 UTC 4de2d39f63965e82e88b12a7bc668fea20fbe7dc
2 files changed +12 -9
src/event/synthetic/SyntheticWheelEvent.js
+10 -7
@@ -27,7 +27,6 @@ var SyntheticMouseEvent = require('SyntheticMouseEvent');
27 */
28 var WheelEventInterface = {
29 deltaX: function(event) {
30 - // NOTE: IE<9 does not support x-axis delta.
30 return (
31 'deltaX' in event ? event.deltaX :
32 // Fallback to `wheelDeltaX` for Webkit and normalize (right is positive).
@@ -36,15 +35,19 @@ var WheelEventInterface = {
35 },
36 deltaY: function(event) {
37 return (
39 - // Normalize (up is positive).
40 - 'deltaY' in event ? -event.deltaY :
41 - // Fallback to `wheelDeltaY` for Webkit.
42 - 'wheelDeltaY' in event ? event.wheelDeltaY :
43 - // Fallback to `wheelDelta` for IE<9.
44 - 'wheelDelta' in event ? event.wheelDelta : 0
38 + 'deltaY' in event ? event.deltaY :
39 + // Fallback to `wheelDeltaY` for Webkit and normalize (down is positive).
40 + 'wheelDeltaY' in event ? -event.wheelDeltaY :
41 + // Fallback to `wheelDelta` for IE<9 and normalize (down is positive).
42 + 'wheelDelta' in event ? -event.wheelDelta : 0
43 );
44 },
45 deltaZ: null,
46 +
47 + // Browsers without "deltaMode" is reporting in raw wheel delta where one
48 + // notch on the scroll is always +/- 120, roughly equivalent to pixels.
49 + // A good approximation of DOM_DELTA_LINE (1) is 5% of viewport size or
50 + // ~40 pixels, for DOM_DELTA_SCREEN (2) it is 87.5% of viewport size.
51 deltaMode: null
52 };
53
src/event/synthetic/__tests__/SyntheticWheelEvent-test.js
+2 -2
@@ -46,11 +46,11 @@ describe('SyntheticWheelEvent', function() {
46 it('should normalize properties from the WheelEvent interface', function() {
47 var standardEvent = createEvent({deltaX: 10, deltaY: -50});
48 expect(standardEvent.deltaX).toBe(10);
49 - expect(standardEvent.deltaY).toBe(50);
49 + expect(standardEvent.deltaY).toBe(-50);
50
51 var webkitEvent = createEvent({wheelDeltaX: -10, wheelDeltaY: 50});
52 expect(webkitEvent.deltaX).toBe(10);
53 - expect(webkitEvent.deltaY).toBe(50);
53 + expect(webkitEvent.deltaY).toBe(-50);
54 });
55
56 it('should be able to `preventDefault` and `stopPropagation`', function() {