Crie animações de rolagem horizontal com GSAP e ScrollTrigger

Ao longo das próximas demos, que são amigáveis ​​para iniciantes, a marcação e o conceito permanecerão mais ou menos os mesmos; haverá uma galeria de imagens onde apenas a primeira estará visível inicialmente. Conforme rolamos, a galeria ficará fixa e, nesse ponto, todas as suas imagens aparecerão de maneiras diferentes.

Observe que este tutorial pressupõe um entendimento básico do GSAP. Além disso, como não entraremos em muitos detalhes em cada demonstração, a melhor maneira de entender como tudo isso funciona é por tentativa e erro. Bifurque-os, altere as configurações, leia a documentação e inspecione o código gerado para ver o que está acontecendo nos bastidores.

Para todas as demonstrações, configurei o end valor para +=500% o que tornará a animação mais longa. Dessa forma, a galeria ficará fixa para 500% de rolagem extra após seu início inicial. Por exemplo, se a posição inicial for 1.000px, a posição final será em torno de 6.000px. Para ver isso em ação, imprima as posições de rolagem inicial e final da sua instância ScrollTrigger. Escolha um valor menor se preferir um efeito fixo mais rápido.

1. Animação horizontal da direita para a esquerda

Neste primeiro caso, temos alguns slides em tela cheia. Conforme rolamos, moveremos todos os slides simultaneamente para a esquerda, dando-lhes um valor de tradução X negativo.

Maquete BalsamiqMaquete BalsamiqMaquete Balsamiq

2. Animação horizontal da esquerda para a direita

Mas e se quisermos reverter a animação anterior e obter um movimento da direita para a esquerda?

Maquete BalsamiqMaquete BalsamiqMaquete Balsamiq

Nesse caso, atribuiremos o dir="rtl" atributo ao contêiner de slides e um valor de tradução X positivo para todos os slides.

3. Animação horizontal da direita para a esquerda (aninhamento)

Neste exemplo um pouco mais complexo, vamos desenvolver a primeira demonstração e usar o ScrollTrigger containerAnimation técnica para criar nScrollTriggers indicados. Dito isso, durante o movimento horizontal dos nossos slides, observe quando as legendas aparecem e então anime o conteúdo.

4. Animação horizontal da direita para a esquerda (alternativa)

Seguindo em frente, agora vamos alterar a largura do slide para ser no máximo 50vw, dependendo do tamanho da tela. Desta vez, em vez de mover os slides, moveremos seu wrapper.

A quantidade de movimento que precisamos rolar resultará da subtração da largura do contêiner dos slides (incluindo o conteúdo não visível) da largura da janela.

Maquete BalsamiqMaquete BalsamiqMaquete Balsamiq

Por último, mas não menos importante, para tornar o efeito responsivo, usaremos valores baseados em funções (veja também esta página) e aplicaremos invalidateOnRefresh: true por meio das configurações do ScrollTrigger.

5. Animação horizontal de cima para baixo (seções empilhadas)

Neste cenário, empilhamos os slides e ocultamos suas legendas. Conforme rolamos, cada slide aparecerá em cima do anterior enquanto sua legenda desaparecerá. Conforme os slides são empilhados, nós os mostraremos sequencialmente, escalonando-os.

Maquete BalsamiqMaquete BalsamiqMaquete Balsamiq

Observe o uso do símbolo “<" que faz com que a animação das legendas aconteça no início da animação do slide associado. Da mesma forma, podemos aplicar uma animação de baixo para cima.

6. Animação horizontal da direita para a esquerda (seções empilhadas)

Seguindo a demo anterior, aqui temos o mesmo conceito de animação. Desta vez, o movimento da animação ocorrerá da direita para a esquerda enquanto as legendas ficarão à esquerda.

Maquete BalsamiqMaquete BalsamiqMaquete Balsamiq

Da mesma forma, podemos aplicar uma animação da esquerda para a direita.

7. Animação horizontal de clip-path (seções empilhadas)

Nesta última demonstração, os slides permanecem empilhados, mas aparecem com uma impressionante animação de clip-path de baixo para cima.

Maquete BalsamiqMaquete BalsamiqMaquete Balsamiq

Para este tipo de animação, primeiro atribuímos o apropriado z-index valores para os slides.

É claro que podemos alterar a direção da animação do clip-path como quisermos.

Conclusão

Isso conclui outro tutorial do GSAP, pessoal! Espero que tenham gostado das seções fixas baseadas em rolagem que construímos hoje e tenham se inspirado! Vá em frente, mergulhe na documentação do ScrollTrigger, seja criativo e construa coisas ainda mais incríveis!

Por último, mas não menos importante, adicionei todas as demos deste tutorial a uma CodePen Collection. Não deixe de conferir e dar um pouco de amor!

Como sempre, muito obrigado pela leitura!

Deixe uma resposta