Rolagem da página para cima com JavaScript: solução simples e confiável
Olá a todos! Sou novo em JavaScript e não consigo entender a rolagem da página para cima. No meu site, há uma página longa com conteúdo e quero criar um botão "Para o topo" para que os usuários possam retornar rapidamente ao início.
Tentei usar `window.scrollTo(0, 0)` — funciona, mas é abrupto, sem animação. Quero uma rolagem suave. Tentei fazer com `window.scrollBy()`, mas me confundi na lógica. Também tentei o método antigo `window.scrollTo({ top: 0, behavior: 'smooth' })`, mas em alguns navegadores ele não funciona, especialmente em versões antigas do Safari.
Aqui está meu código atual, que montei:
function scrollToTop() {
window.scrollTo(0, 0);
}
O botão funciona, mas é brusco. Alguém pode me dizer como fazer uma rolagem suave que funcione em todos os navegadores modernos? E é possível adicionar uma animação com mudança de velocidade — para que comece rápido e depois desacelere? Agradeço por um exemplo com explicações. Obrigado!
P.S. Não sugiram jQuery — quero