dois:pontos

Rolagem suave com só uma linha de CSS

4 de março de 2020 - 1 min

A rolagem suave é algo bastante simples, mas faz uma diferença. Geralmente um javascript é usado para atingir este efeito, porém, com a evolução dos recursos no CSS, agora é possível obter um resultado parecido.

Trata-se da propriedade CSS chamada scroll-behavior. No momento, ainda há algumas limitações quanto aos navegadores que suportam, mas são bem poucos.

Limitações

Na data de publicação deste artigo, dos navegadores que testei, apenas o Safari ainda não possui este suporte. Todos os navegadores baseados no Chromium possuem, assim como o Firefox. No final do artigo deixei um link com todos os navegadores que suportam.

Além disso, não é possível personalizar a velocidade da rolagem. Isto fica a cargo de cada navegador. Se você deseja personalizar o comportamento deste efeito, esta solução não é para você.

O código

html {
  scroll-behavior: smooth;
}

Acima o exemplo é aplicado para o elemento <html>. No entanto, esta propriedade pode ser aplicada a qualquer elemento que possua overflow: scroll, ou seja, que tenha rolagem de conteúdo. Basta colocar o nome da classe do elemento e voilà: o efeito será atingido.

.rolo {
  height: 200px;
  overflow-y: scroll;
  scroll-behavior: smooth;
  width: 200px;
}

O outro valor possível para a propriedade é o auto, mas seria o mesmo que não usa-lá, já que é o comportamento padrão normal da rolagem, sem rolagem suave.

Entre usar esta propriedade ou um javascript, fico com o CSS, mesmo. Aqui no blog eu o utilizo desta forma. Tenho para mim que se algo poder ser feito sem usar um script, que seja assim.

Links

Apoie este blog

Se este artigo te ajudou de alguma forma, considere fazer uma doação. Isto vai me ajudar a criar mais conteúdos como este!
Clique aqui!

Comentários

Elves Sousa © 2023