Действительно странно: этот вопрос активен в течение пяти лет, и до сих пор нет ванильного ответа JavaScript для анимации прокрутки ... Итак, вы идете:
var scrollToTop = window.setInterval(function() {
var pos = window.pageYOffset;
if ( pos > 0 ) {
window.scrollTo( 0, pos - 20 ); // how far to scroll on each step
} else {
window.clearInterval( scrollToTop );
}
}, 16); // how fast to scroll (this equals roughly 60 fps)
Если хотите, вы можете обернуть это в функцию и вызвать ее через атрибут onclick
. Проверьте это jsfiddle
Примечание. Это очень простое и, возможно, не самое эффективное решение. Очень сложный пример можно найти здесь: https://github.com/cferdinandi/smooth-scroll