Merge pull request #778 from syranide/flipwheel

Fix WheelEvent incorrectly flipping sign of deltaY
This commit is contained in:
Timothy Yung
2014-01-09 16:34:47 -08:00
2 changed files with 12 additions and 9 deletions

View File

@@ -27,7 +27,6 @@ var SyntheticMouseEvent = require('SyntheticMouseEvent');
*/
var WheelEventInterface = {
deltaX: function(event) {
// NOTE: IE<9 does not support x-axis delta.
return (
'deltaX' in event ? event.deltaX :
// Fallback to `wheelDeltaX` for Webkit and normalize (right is positive).
@@ -36,15 +35,19 @@ var WheelEventInterface = {
},
deltaY: function(event) {
return (
// Normalize (up is positive).
'deltaY' in event ? -event.deltaY :
// Fallback to `wheelDeltaY` for Webkit.
'wheelDeltaY' in event ? event.wheelDeltaY :
// Fallback to `wheelDelta` for IE<9.
'wheelDelta' in event ? event.wheelDelta : 0
'deltaY' in event ? event.deltaY :
// Fallback to `wheelDeltaY` for Webkit and normalize (down is positive).
'wheelDeltaY' in event ? -event.wheelDeltaY :
// Fallback to `wheelDelta` for IE<9 and normalize (down is positive).
'wheelDelta' in event ? -event.wheelDelta : 0
);
},
deltaZ: null,
// Browsers without "deltaMode" is reporting in raw wheel delta where one
// notch on the scroll is always +/- 120, roughly equivalent to pixels.
// A good approximation of DOM_DELTA_LINE (1) is 5% of viewport size or
// ~40 pixels, for DOM_DELTA_SCREEN (2) it is 87.5% of viewport size.
deltaMode: null
};

View File

@@ -46,11 +46,11 @@ describe('SyntheticWheelEvent', function() {
it('should normalize properties from the WheelEvent interface', function() {
var standardEvent = createEvent({deltaX: 10, deltaY: -50});
expect(standardEvent.deltaX).toBe(10);
expect(standardEvent.deltaY).toBe(50);
expect(standardEvent.deltaY).toBe(-50);
var webkitEvent = createEvent({wheelDeltaX: -10, wheelDeltaY: 50});
expect(webkitEvent.deltaX).toBe(10);
expect(webkitEvent.deltaY).toBe(50);
expect(webkitEvent.deltaY).toBe(-50);
});
it('should be able to `preventDefault` and `stopPropagation`', function() {