diff --git a/.dist/infiniteScroller.js b/.dist/infiniteScroller.js index aa0cfa7..cfeeb0d 100644 --- a/.dist/infiniteScroller.js +++ b/.dist/infiniteScroller.js @@ -26,7 +26,17 @@ class InfiniteScroller { this.interval = setInterval(this.updatestuff.bind(this), 100); this.scroll = scroll; this.scroll.addEventListener("scroll", this.watchForChange.bind(this)); - new ResizeObserver(this.watchForChange.bind(this)).observe(div); + { + let oldheight = 0; + new ResizeObserver(_ => { + const change = oldheight - this.div.offsetHeight; + if (change > 0) { + this.scroll.scrollTop += change; + } + oldheight = this.div.offsetHeight; + this.watchForChange(); + }).observe(div); + } new ResizeObserver(this.watchForChange.bind(this)).observe(scroll); await this.firstElement(initialId); this.updatestuff(); diff --git a/webpage/infiniteScroller.ts b/webpage/infiniteScroller.ts index 7f1c9c6..2fad78d 100644 --- a/webpage/infiniteScroller.ts +++ b/webpage/infiniteScroller.ts @@ -27,7 +27,17 @@ class InfiniteScroller{ this.scroll=scroll; this.scroll.addEventListener("scroll",this.watchForChange.bind(this)); - new ResizeObserver(this.watchForChange.bind(this)).observe(div); + { + let oldheight=0; + new ResizeObserver(_=>{ + const change=oldheight-this.div.offsetHeight; + if(change>0){ + this.scroll.scrollTop+=change; + } + oldheight=this.div.offsetHeight; + this.watchForChange(); + }).observe(div); + } new ResizeObserver(this.watchForChange.bind(this)).observe(scroll); await this.firstElement(initialId)