ATUALIZAR
Ir para o topo da página com um efeito de rolagem é um pouco mais fácil em javascript agora com:
https://developer.mozilla.org/en-US/docs/Web/API/Window/scroll
window.scroll({
top: 0,
left: 0,
behavior: 'smooth'
});
CUIDADO
Temos usado isso em nossos projetos mais recentes, mas acabei de verificar o documento do mozilla agora enquanto atualizava minha resposta e acredito que ele foi atualizado. Neste momento, o método é window.scroll(x-coord, y-coord)
e não menciona ou mostrar exemplos que usam o object
parâmetro, onde você pode definir o behavior
que smooth
. Eu apenas tentei o código e ele ainda funciona no chrome e firefox e o parâmetro do objeto ainda está na especificação .
Portanto, use-o com cuidado ou use este Polyfill . Além de rolagem ao topo, este polyfill também lida com outros métodos: window.scrollBy
, element.scrollIntoView
, etc.
RESPOSTA ANTIGA
Esta é a nossa javascript
implementação de baunilha . Ele tem um efeito de alívio simples, para que o usuário não fique chocado depois de clicar no botão Início .
É muito pequeno e fica ainda menor quando reduzido. Os desenvolvedores que procuram uma alternativa ao método jquery, mas desejam os mesmos resultados, podem tentar isso.
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>
Felicidades!