SwiftHTML & CSSSolidityDesenvolvimento de JogosSolana/Rust
04.03.2025

Parando o 'Scroll Beyond' no Chrome: Equivalente no iOS para Mac

Resposta Rápida

Se você precisa impedir a rolagem da página além de seu limite superior, aplique a propriedade CSS overscroll-behavior com o valor none ao elemento <body>:

body {
  /* limita a rolagem, a página para de rolar */
  overscroll-behavior: none;
}

Essa técnica impede que o conteúdo da página ultrapasse a área visível durante a rolagem.

Explorando o Problema: Definindo Limites

Você pode ajustar ainda mais o comportamento de rolagem usando a propriedade overscroll-behavior ao longo dos eixos X e Y. Inversamente, você pode permitir alguma funcionalidade, como “puxar para atualizar”, em certas áreas enquanto restringe em outras:

document.body.addEventListener('touchmove', function(e) {
    /* tentativas de rolagem serão bloqueadas */
    e.preventDefault();
}, { passive: false });

Importante: Certifique-se de que suas alterações não perturbem a interação familiar que os usuários esperam com interfaces touchscreen.

Visualização

Pense na página da web como uma imagem em uma moldura (🖼):

Moldura (🖼): [Sua Criação]

Configure-a para que fique parada e não "tremule":

Antes:
🖼
🌄🌅🏞 (Conteúdo 'sai' da moldura)

Depois:
🖼
🌆 (Tudo no lugar! O efeito de rolagem é superado)

Para alcançar isso, aplique estilos CSS para fixar o conteúdo dentro da moldura:

body, html {
  /* conserta a rolagem */
  overflow: hidden; 
}

Como resultado, a imagem se ajusta perfeitamente dentro da moldura, eliminando qualquer efeito de rolagem.

A Barra de Rolagem: Seu Novo Melhor Amigo

Para garantir a visibilidade da barra de rolagem em diferentes plataformas, coloque seu conteúdo dentro de um contêiner <div>, equipado com propriedades adequadas. Isso garantirá um comportamento de rolagem consistente e eliminará movimentos indesejados:

.wrapper {
  /* configuração para a área de rolagem */
  overflow-y: auto;
  max-height: 100vh;
}

A classe .wrapper restringe a rolagem desnecessária, proporcionando uma experiência de usuário suave e previsível, semelhante a aplicativos nativos.

Adaptando-se à Plataforma Certa

Use a propriedade -webkit-overflow-scrolling com o valor touch para garantir uma rolagem suave em dispositivos iOS, tornando o uso do site muito mais agradável:

body {
  /* a rolagem é tão suave quanto manteiga em uma frigideira quente */
  -webkit-overflow-scrolling: touch;
}

Dessa forma, você replica a característica de rolagem inercial de iPads e iPhones, garantindo uma experiência visual unificada em todos os dispositivos.

Discutindo Aspectos Práticos

Lembre-se, todas as mudanças afetam a forma como os usuários percebem seu site. Tente não perturbar o efeito de ressalto ao qual os usuários estão acostumados e mantenha soluções pensadas e funcionais para evitar a rolagem da página. Testar é especialmente crucial para garantir uma interface de usuário conveniente e intuitiva.

Recursos Úteis

  1. overscroll-behavior | CSS-Tricks
  2. overscroll-behavior - CSS: MDN
  3. Overscroll Behavior Module Level 1
  4. rolagem - Desabilitar rolagem e efeito de ressalto no mobile Safari
  5. Controle Sua Rolagem
  6. CSS overscroll-behavior | Posso usar
  7. bitsofcode

Did you like this article? Rate it from 1 to 5:

Thank you for voting!