fix jumping when unfilling the top while scrolling down
This commit is contained in:
parent
ab49bc4fcf
commit
4bfdbe3094
1 changed files with 8 additions and 2 deletions
|
@ -642,11 +642,17 @@ module.exports = React.createClass({
|
||||||
// the currently filled piece of the timeline
|
// the currently filled piece of the timeline
|
||||||
if (trackedNode) {
|
if (trackedNode) {
|
||||||
const oldTop = trackedNode.offsetTop;
|
const oldTop = trackedNode.offsetTop;
|
||||||
|
// changing the height might change the scrollTop
|
||||||
|
// if the new height is smaller than the scrollTop.
|
||||||
|
// We calculate the diff that needs to be applied
|
||||||
|
// ourselves, so be sure to measure the
|
||||||
|
// scrollTop before changing the height.
|
||||||
|
const preexistingScrollTop = sn.scrollTop;
|
||||||
itemlist.style.height = `${newHeight}px`;
|
itemlist.style.height = `${newHeight}px`;
|
||||||
const newTop = trackedNode.offsetTop;
|
const newTop = trackedNode.offsetTop;
|
||||||
const topDiff = newTop - oldTop;
|
const topDiff = newTop - oldTop;
|
||||||
sn.scrollTop = sn.scrollTop + topDiff;
|
sn.scrollTop = preexistingScrollTop + topDiff;
|
||||||
debuglog("updateHeight to", newHeight, topDiff);
|
debuglog("updateHeight to", {newHeight, topDiff, preexistingScrollTop});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue