Skip to content

Commit 1363212

Browse files
Merge pull request #1 from SoundstripeTech/bug/chrome_mousewheel
Fixed Chrome mousewheel hanging up requests
2 parents ac8581d + ae92880 commit 1363212

File tree

2 files changed

+38
-0
lines changed

2 files changed

+38
-0
lines changed

dist/InfiniteScroll.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,11 @@ var InfiniteScroll = (function(_Component) {
135135
scrollEl = this.scrollComponent.parentNode;
136136
}
137137

138+
scrollEl.removeEventListener(
139+
'mousewheel',
140+
this.mousewheelListener,
141+
this.props.useCapture,
142+
);
138143
scrollEl.removeEventListener(
139144
'scroll',
140145
this.scrollListener,
@@ -159,6 +164,11 @@ var InfiniteScroll = (function(_Component) {
159164
scrollEl = this.scrollComponent.parentNode;
160165
}
161166

167+
scrollEl.addEventListener(
168+
'mousewheel',
169+
this.mousewheelListener,
170+
this.props.useCapture,
171+
);
162172
scrollEl.addEventListener(
163173
'scroll',
164174
this.scrollListener,
@@ -175,6 +185,16 @@ var InfiniteScroll = (function(_Component) {
175185
}
176186
},
177187
},
188+
{
189+
key: 'mousewheelListener',
190+
value: function mousewheelListener(e) {
191+
// Prevents Chrome hangups
192+
// See: https://stackoverflow.com/questions/47524205/random-high-content-download-time-in-chrome/47684257#47684257
193+
if (e.deltaY === 1) {
194+
e.preventDefault();
195+
}
196+
},
197+
},
178198
{
179199
key: 'scrollListener',
180200
value: function scrollListener() {

src/InfiniteScroll.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,11 @@ export default class InfiniteScroll extends Component {
6161
scrollEl = this.scrollComponent.parentNode;
6262
}
6363

64+
scrollEl.removeEventListener(
65+
'mousewheel',
66+
this.mousewheelListener,
67+
this.props.useCapture,
68+
);
6469
scrollEl.removeEventListener(
6570
'scroll',
6671
this.scrollListener,
@@ -83,6 +88,11 @@ export default class InfiniteScroll extends Component {
8388
scrollEl = this.scrollComponent.parentNode;
8489
}
8590

91+
scrollEl.addEventListener(
92+
'mousewheel',
93+
this.mousewheelListener,
94+
this.props.useCapture,
95+
);
8696
scrollEl.addEventListener(
8797
'scroll',
8898
this.scrollListener,
@@ -99,6 +109,14 @@ export default class InfiniteScroll extends Component {
99109
}
100110
}
101111

112+
mousewheelListener(e) {
113+
// Prevents Chrome hangups
114+
// See: https://stackoverflow.com/questions/47524205/random-high-content-download-time-in-chrome/47684257#47684257
115+
if (e.deltaY === 1) {
116+
e.preventDefault();
117+
}
118+
}
119+
102120
scrollListener() {
103121
const el = this.scrollComponent;
104122
const scrollEl = window;

0 commit comments

Comments
 (0)