
Get distance from top using Document.documentElement
or Document.body
and Element.scrollTop
.
Scroll by a fraction of the distance from the top.
Use Window.requestAnimationFrame()
to animate the scrolling.
const scrollToTop = () => {
const c = document.documentElement.scrollTop || document.body.scrollTop;
if (c > 0) {
window.requestAnimationFrame(scrollToTop);
window.scrollTo(0, c - c / 8);
}
};
Source
https://www.30secondsofcode.org/js/s/scroll-to-top