Skip to content

Commit 93f2758

Browse files
authored
Merge pull request #184 from hengkx/fix-183
fix 183 When isReverse is true,The scroll bar position incorrect
2 parents ce7ce55 + 1619c05 commit 93f2758

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

dist/InfiniteScroll.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,14 @@ var InfiniteScroll = (function(_Component) {
110110
{
111111
key: 'componentDidUpdate',
112112
value: function componentDidUpdate() {
113+
if (this.props.isReverse && this.loadMore) {
114+
var parentElement = this.getParentElement(this.scrollComponent);
115+
parentElement.scrollTop =
116+
parentElement.scrollHeight -
117+
this.beforeScrollHeight +
118+
this.beforeScrollTop;
119+
this.loadMore = false;
120+
}
113121
this.attachScrollListener();
114122
},
115123
},
@@ -261,9 +269,12 @@ var InfiniteScroll = (function(_Component) {
261269
el.offsetParent !== null
262270
) {
263271
this.detachScrollListener();
272+
this.beforeScrollHeight = parentNode.scrollHeight;
273+
this.beforeScrollTop = parentNode.scrollTop;
264274
// Call loadMore after detachScrollListener to allow for non-async loadMore functions
265275
if (typeof this.props.loadMore === 'function') {
266276
this.props.loadMore((this.pageLoaded += 1));
277+
this.loadMore = true;
267278
}
268279
}
269280
},

src/InfiniteScroll.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,14 @@ export default class InfiniteScroll extends Component {
4444
}
4545

4646
componentDidUpdate() {
47+
if (this.props.isReverse && this.loadMore) {
48+
const parentElement = this.getParentElement(this.scrollComponent);
49+
parentElement.scrollTop =
50+
parentElement.scrollHeight -
51+
this.beforeScrollHeight +
52+
this.beforeScrollTop;
53+
this.loadMore = false;
54+
}
4755
this.attachScrollListener();
4856
}
4957

@@ -172,9 +180,12 @@ export default class InfiniteScroll extends Component {
172180
(el && el.offsetParent !== null)
173181
) {
174182
this.detachScrollListener();
183+
this.beforeScrollHeight = parentNode.scrollHeight;
184+
this.beforeScrollTop = parentNode.scrollTop;
175185
// Call loadMore after detachScrollListener to allow for non-async loadMore functions
176186
if (typeof this.props.loadMore === 'function') {
177187
this.props.loadMore((this.pageLoaded += 1));
188+
this.loadMore = true;
178189
}
179190
}
180191
}

0 commit comments

Comments
 (0)