JSFiddle - React, Tailwind, and code Playground

by benhowdle89

HTML

<div id="scroll-to-top">Click me</div>

CSS

div {
    position: relative;
    top: 1000px;
}

JavaScript

document.getElementById('scroll-to-top').onclick = function () {
    scrollTo(document.body, 0, 100);
}

function scrollTo(element, to, duration) {
    if (duration < 0) return;
    var difference = to - element.scrollTop;
    var perTick = difference / duration * 2;

    setTimeout(function() {
        element.scrollTop = element.scrollTop + perTick;
        scrollTo(element, to, duration - 2);
    }, 10);
}