ОБНОВИТЬ
Перейти к началу страницы с эффектом прокрутки теперь немного проще в javascript с помощью:
https://developer.mozilla.org/en-US/docs/Web/API/Window/scroll
window.scroll({
top: 0,
left: 0,
behavior: 'smooth'
});
ВНИМАНИЕ
Мы использовали это в наших более свежих проектах, но я только что проверил документацию Mozilla прямо сейчас, обновляя свой ответ, и я считаю, что он был обновлен. Прямо сейчас метод window.scroll(x-coord, y-coord)
не упоминает и не показывает примеры, в которых используется object
параметр, для которого можно установить behavior
значение smooth
. Я только что попробовал код, и он все еще работает в Chrome и Firefox, а параметр объекта все еще в спецификации .
Так что используйте это с осторожностью, или вы можете использовать этот Polyfill . Помимо прокрутки в верхней части, это polyfill также обрабатывает другие методы: window.scrollBy
, element.scrollIntoView
и т.д.
СТАРЫЙ ОТВЕТ
Это наша ванильная javascript
реализация. Он имеет простой эффект смягчения, так что пользователь не будет шокирован после нажатия наверх .
Он очень маленький и становится еще меньше при уменьшении. Разработчики, ищущие альтернативу методу jquery, но желающие получить те же результаты, могут попробовать это.
JS
document.querySelector("#to-top").addEventListener("click", function(){
var toTopInterval = setInterval(function(){
var supportedScrollTop = document.body.scrollTop > 0 ? document.body : document.documentElement;
if (supportedScrollTop.scrollTop > 0) {
supportedScrollTop.scrollTop = supportedScrollTop.scrollTop - 50;
}
if (supportedScrollTop.scrollTop < 1) {
clearInterval(toTopInterval);
}
}, 10);
},false);
HTML
<button id="to-top">To Top</button>
Ура!