Scroll horizontal sem partir a acessibilidade
A secção que trava o scroll vertical e continua na horizontal é bonita. Também é o sítio onde a maioria dos sites falha o teclado.
O padrão é simples de implementar e fácil de estragar: fixa-se a secção, traduz-se uma faixa no eixo X em função do progresso de scroll e liberta-se no fim. O que costuma faltar é tudo o resto.
Regras que não são negociáveis
- Respeitar prefers-reduced-motion: sem motion, a faixa vira uma lista com scroll nativo.
- Cada cartão continua focável por Tab e a secção acompanha o foco.
- A altura do pin é calculada a partir da largura real da faixa, não de um valor fixo.
- Em mobile, desliga-se o pin e usa-se scroll-snap nativo.
O detalhe que ninguém testa
Redimensionar a janela a meio da secção. Se a altura do pin não for recalculada, o utilizador fica preso ou salta duzentos pixels. Um ScrollTrigger.refresh() com debounce resolve — e evita o bug mais reportado deste padrão.
Partilhar
Deixe um comentário