Como Rolar para o Topo da Página

Conteúdo do Artigo

Rolar até o topo da página é uma função comum em desenvolvimento web, especialmente em sites com conteúdo longo. Uma solução eficaz para essa necessidade é utilizar o método globalThis.scrollTo em JavaScript. Neste artigo, vamos explorar como usar essa função e os benefícios dessa abordagem.

Por que usar o globalThis.scrollTo?

O método scrollTo pode ser chamado a partir de diferentes contextos globais. globalThis é uma adição recente ao ECMAScript que fornece uma maneira uniforme de acessar o objeto global, independentemente do ambiente onde o JavaScript está sendo executado (navegador, Node.js, web workers, etc.). Usar globalThis garante que seu código seja mais consistente e universalmente aplicável.

Implementação Básica

Para rolar até o topo da página, você pode usar o seguinte código JavaScript:

globalThis.scrollTo({ top: 0, left: 0, behavior: 'smooth' });
Explicação do Código:
  • globalThis.scrollTo é o método que permite rolar a janela para uma posição específica.
  • { top: 0, left: 0, behavior: ‘smooth’ } é um objeto de configuração onde:
    • top: 0 define a posição de rolagem no topo da página.
    • left: 0 garante que a rolagem ocorra também horizontalmente para a posição zero (a extremidade esquerda da página).
    • behavior: ‘smooth’ garante que a rolagem seja suave, melhorando a experiência do usuário.

Adicionar left: 0 é importante porque assegura que, além da rolagem vertical, qualquer rolagem horizontal também seja redefinida para a posição inicial. Isso é particularmente útil em páginas que permitem a rolagem horizontal, garantindo que o usuário seja levado ao canto superior esquerdo da página.

Integração com um Botão “Voltar ao Topo”

Uma maneira prática de implementar essa funcionalidade é adicionar um botão “Voltar ao Topo”. Aqui está um exemplo de como fazer isso:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Scroll to Top Example</title>
  <style>
    #scrollBtn {
      position: fixed;
      bottom: 20px;
      right: 20px;
      display: none;
      background-color: #007bff;
      color: white;
      border: none;
      padding: 10px 20px;
      cursor: pointer;
    }
  </style>
</head>
<body>
  <!-- Conteúdo da página -->
  <button id="scrollBtn" onclick="scrollToTop()">Voltar ao Topo</button>

  <script>
    const scrollBtn = document.getElementById('scrollBtn');

    globalThis.onscroll = function() {
      if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {
        scrollBtn.style.display = 'block';
      } else {
        scrollBtn.style.display = 'none';
      }
    };

    function scrollToTop() {
      globalThis.scrollTo({ top: 0, left: 0, behavior: 'smooth' });
    }
  </script>
</body>
</html>

Explicação do Código:

  • Estilo do Botão: O botão é posicionado no canto inferior direito da página e é escondido inicialmente (display: none).
  • Evento de Rolagem: Quando o usuário rola a página, uma função verifica a posição de rolagem e mostra ou esconde o botão conforme necessário.
  • Função scrollToTop: Essa função é chamada quando o botão é clicado, rolando a página suavemente para o topo.

Benefícios do Uso de globalThis

  • Consistência: Garante que o código funcione de maneira consistente em diferentes ambientes JavaScript.
  • Compatibilidade: É especialmente útil em projetos que podem ser executados tanto no lado do cliente quanto no lado do servidor.
  • Confiabilidade: Reduz o risco de erros relacionados ao contexto global, melhorando a robustez do código.

See the Pen Como Rolar para o Topo da Página Usando JavaScript by Massao Kuroiwa (@massaokuroiwa) on CodePen.

Rolar para elementos id específicos

Se você quiser rolar a página para uma seção específica, onde a coordenada absoluta pode mudar conforme o layout da página muda, é melhor usar uma âncora.

Você vai precisar de um elemento com um id para que isso funcione, como <section id=”titulo”>Este é o título da minha página.</section>

document.getElementById("titulo").scrollIntoView({ behavior: "smooth" });

Botão para rolar para o elemento id específico

Em vez de rolar automaticamente, se você quiser que o usuário possa clicar em um botão para rolar para cima, este é o código que você pode adicionar ao seu HTML:

<section id="titulo">Este é o título da minha página.</section>

<button onClick="document.getElementById('titulo').scrollIntoView({ behavior: 'smooth'});">
  Voltar ao topo
</button>

Conclusão

Utilizar o método globalThis.scrollTo em JavaScript é uma maneira eficaz de melhorar a navegação no seu site, garantindo consistência e compatibilidade em diferentes ambientes. Implementando um botão “Voltar ao Topo”, você proporciona uma experiência de usuário mais amigável e acessível. Explore essa técnica para tornar seu site mais dinâmico e fácil de usar.

Este artigo foi visualizado 37 vezes.

Compartilhar o Artigo

Sobre o Autor

Oi, eu sou o Massao Kuroiwa! Sou Web Designer e Desenvolvedor Front-End com mais de 9 anos de experiência na criação de sites bonitos, funcionais e otimizados. Comecei minha carreira como técnico em informática e, desde 2015, venho mergulhando no mundo do design e desenvolvimento web, sempre buscando aprender e aprimorar minhas habilidades.

Além de desenvolver sites, também sou um entusiasta do aquarismo. Tenho dois blogs onde compartilho minhas aventuras e conhecimentos.

Obrigado por ler meu artigo! Espero que tenha encontrado informações úteis e inspiradoras. Fique à vontade para explorar mais conteúdos e se conectar comigo.

Últimos Artigos