ACTUALIZAR
Ir a la parte superior de la página con un efecto de desplazamiento es un poco más fácil en JavaScript ahora con:
https://developer.mozilla.org/en-US/docs/Web/API/Window/scroll
window.scroll({
top: 0,
left: 0,
behavior: 'smooth'
});
PRECAUCIÓN
Hemos estado usando esto en nuestros proyectos más recientes, pero acabo de revisar el documento de Mozilla en este momento mientras actualizo mi respuesta y creo que se ha actualizado. En este momento el método es window.scroll(x-coord, y-coord)y no menciona ni muestra ejemplos que utilizan el objectparámetro donde se puede establecer el behaviora smooth. Acabo de probar el código y todavía funciona en Chrome y Firefox y el parámetro objeto todavía está en la especificación .
Así que use esto con precaución o puede usar este Polyfill . Aparte de desplazarse a la parte superior, esta polyfill también se ocupa de otros métodos: window.scrollBy, element.scrollIntoView, etc.
ANTIGUA RESPUESTA
Esta es nuestra javascriptimplementación de vainilla . Tiene un efecto de alivio simple para que el usuario no se sorprenda después de hacer clic en el botón Arriba .
Es muy pequeño y se vuelve aún más pequeño cuando se minifica. Los desarrolladores que buscan una alternativa al método jquery pero quieren los mismos resultados pueden intentarlo.
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>
¡Salud!