@@ -62,6 +62,8 @@ export class IgxScrollInertiaDirective implements OnInit, OnDestroy {
62
62
private _nextX ;
63
63
private _nextY ;
64
64
private parentElement ;
65
+ private baseDeltaMultiplier = 1 / 120 ;
66
+ private firefoxDeltaMultiplier = 1 / 30 ;
65
67
66
68
ngOnInit ( ) : void {
67
69
this . _zone . runOutsideAngular ( ( ) => {
@@ -106,28 +108,30 @@ export class IgxScrollInertiaDirective implements OnInit, OnDestroy {
106
108
if ( evt . wheelDeltaX ) {
107
109
/* Option supported on Chrome, Safari, Opera.
108
110
/* 120 is default for mousewheel on these browsers. Other values are for trackpads */
109
- scrollDeltaX = - evt . wheelDeltaX / 120 ;
111
+ scrollDeltaX = - evt . wheelDeltaX * this . baseDeltaMultiplier ;
110
112
111
113
if ( - minWheelStep < scrollDeltaX && scrollDeltaX < minWheelStep ) {
112
114
scrollDeltaX = Math . sign ( scrollDeltaX ) * minWheelStep ;
113
115
}
114
116
} else if ( evt . deltaX ) {
115
117
/* For other browsers that don't provide wheelDelta, use the deltaY to determine direction and pass default values. */
116
- scrollDeltaX = this . calcAxisCoords ( evt . deltaX , - 1 , 1 ) ;
118
+ const deltaScaledX = evt . deltaX * ( evt . deltaMode === 0 ? this . firefoxDeltaMultiplier : 1 ) ;
119
+ scrollDeltaX = this . calcAxisCoords ( deltaScaledX , - 1 , 1 ) ;
117
120
}
118
121
119
122
/** Get delta for the Y axis */
120
123
if ( evt . wheelDeltaY ) {
121
124
/* Option supported on Chrome, Safari, Opera.
122
125
/* 120 is default for mousewheel on these browsers. Other values are for trackpads */
123
- scrollDeltaY = - evt . wheelDeltaY / 120 ;
126
+ scrollDeltaY = - evt . wheelDeltaY * this . baseDeltaMultiplier ;
124
127
125
128
if ( - minWheelStep < scrollDeltaY && scrollDeltaY < minWheelStep ) {
126
129
scrollDeltaY = Math . sign ( scrollDeltaY ) * minWheelStep ;
127
130
}
128
131
} else if ( evt . deltaY ) {
129
132
/* For other browsers that don't provide wheelDelta, use the deltaY to determine direction and pass default values. */
130
- scrollDeltaY = this . calcAxisCoords ( evt . deltaY , - 1 , 1 ) ;
133
+ const deltaScaledY = evt . deltaY * ( evt . deltaMode === 0 ? this . firefoxDeltaMultiplier : 1 ) ;
134
+ scrollDeltaY = this . calcAxisCoords ( deltaScaledY , - 1 , 1 ) ;
131
135
}
132
136
if ( scrollDeltaX && this . IgxScrollInertiaDirection === 'horizontal' ) {
133
137
this . _scrollToX (
0 commit comments