scroll-behavior: smooth;

by redky

CSS

body {
    scroll-behavior: smooth
}
div {
    width: 100px;
    height: 100px;
}

JavaScript

function random() {
    return Math.floor(Math.random() * 255 + 50);
}

var fragment = document.createDocumentFragment();
var i = 0;
while (i < 200) {
    var el = document.createElement('div');
    var r = random(),
        g = random(),
        b = random();
    el.style.background = 'rgb( ' + r + ', ' + g + ', ' + b + ' )';
    fragment.appendChild(el);
    i++;
}
document.getElementsByTagName('body')[0].appendChild(fragment);
document.onclick = function () {
    window.scrollTo(0, 100 * 100, 'smooth');
};