Desenvolvendo animações de qualidade usando React JS e GSAP a partir do zero 🚀

Posted by


Para criar animações profissionais com React JS e GSAP do zero, primeiro é importante entender como o GSAP funciona e como integrá-lo em um projeto React.

  1. Instalando o GSAP:
    Para começar, é necessário instalar o GSAP em seu projeto React. Para isso, você pode utilizar o npm ou yarn. Basta executar o seguinte comando no terminal:
npm install gsap

ou

yarn add gsap
  1. Importando o GSAP no projeto:
    Após a instalação, é preciso importar o GSAP no arquivo em que você deseja utilizar as animações. Você pode fazer isso da seguinte maneira:
import { gsap } from 'gsap';
  1. Criando uma animação com GSAP:
    Agora que o GSAP está instalado e importado em seu projeto, você pode criar animações de vários tipos, como animações de transição, rotação, escala, entre outras.

Por exemplo, para criar uma animação de transição de um elemento HTML utilizando o GSAP, você pode fazer o seguinte:

gsap.to('.elemento', { duration: 1, x: 100, opacity: 0.5 });

Neste exemplo, o código acima irá animar o elemento com a classe "elemento" deslocando-o 100 pixels para a direita e alterando sua opacidade para 0.5 ao longo de 1 segundo.

  1. Criando animações reativas com React:
    Para criar animações reativas com React, você pode utilizar os hooks useEffect e useState para controlar o estado dos elementos a serem animados e atualizá-los de forma dinâmica.
import React, { useEffect, useState } from 'react';

const Animacao = () => {
  const [visivel, setVisivel] = useState(false);

  useEffect(() => {
    if (visivel) {
      gsap.to('.elemento', { duration: 1, x: 100, opacity: 0.5 });
    } else {
      gsap.to('.elemento', { duration: 1, x: 0, opacity: 1 });
    }
  }, [visivel]);

  return (
    <>
      <div className="elemento"></div>
      <button onClick={() => setVisivel(!visivel)}>Toggle Animation</button>
    </>
  );
};

export default Animacao;

Neste exemplo, o componente Animacao possui um estado visivel que controla a visibilidade do elemento a ser animado. Quando o botão é clicado, a animação é alternada entre visível e invisível.

  1. Combinação de múltiplas animações:
    Por fim, você também pode combinar vários efeitos de animação para criar animações mais complexas e interessantes em seu projeto React.

Por exemplo, você pode criar uma animação de entrada e saída para um conjunto de elementos de lista:

import { useEffect } from 'react';

const ListaAnimada = () => {
  useEffect(() => {
    gsap.from('.lista li', { duration: 1, y: -50, opacity: 0, stagger: 0.2 });
    gsap.to('.lista li', { duration: 1, y: 50, opacity: 0, stagger: 0.2, delay: 3 });
  }, []);

  return (
    <ul className="lista">
      <li>Item 1</li>
      <li>Item 2</li>
      <li>Item 3</li>
    </ul>
  );
};

export default ListaAnimada;

Neste exemplo, a lista de itens será animada ao entrar na tela e sair após 3 segundos.

Com essas dicas e exemplos, você está pronto para criar animações profissionais com React JS e GSAP do zero. Experimente diferentes tipos de animações, explore a documentação do GSAP e crie efeitos personalizados para deixar seu projeto ainda mais dinâmico e visualmente atraente. 🚀

0 0 votes
Article Rating

Leave a Reply

24 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
@nautaviajante
1 hour ago

Obrigado pelo video! upp

@thiagomoura3288
1 hour ago

não funciona pára celual?

@pedrofernandes2402
1 hour ago

Nossa, era exatamente disso que eu precisava e estava buscando, muito bom o vídeo e o conteúdo, ganhoou um inscrito

@adrianoramos7724
1 hour ago

Tem como usar com Tailwind?

@tainasantana4562
1 hour ago

muito bom, obrigada!

@maycondouglas3179
1 hour ago

Que extensão é essa que vc usa p "calcular" o tamanho, "riscando" a tela ?

@eduardomoura6896
1 hour ago

Quebrei a cabeça com scroReveal e nao estava funcionando
Ai vem o matheus e lança essa barbada
tmj cara ajudou dmais
sucesso !

@dionatansilva8254
1 hour ago

Bom dia, tenho uma duvida mas confesso que ainda não parei para testar, se meu site mudar o height dele conforme a resolução da tela a animação mudaria o tempo de execução e o momento em que inicia?

@gabrielpaixao6252
1 hour ago

Se eu pudesse eu deixava like todas as vezes que venho nesse vídeo pra tirar dúvidas do gsap! Excelente conteúdo!

@GabrielCarvalho-l1v
1 hour ago

to com um problema com renderização , usando o useEffect , alguem pode ajudar ?

@atejap
1 hour ago

Tem como usar com tailwindCss?

@darlanmartins7546
1 hour ago

😮 que incrível, eu so tenho a agradecer a você e aos desenvolvedores dessa lib sensacional

@annakarolinafranz5946
1 hour ago

muito bom, estava procurando algo do tipo… e isso com certeza vai ajudar 🙂

@leuzaoo
1 hour ago

Didática perfeita mano! Obrigado

@mgmoura
1 hour ago

conteudo mto legal. parabens !!

@JogandocomVini
1 hour ago

Quais sao os melhores sites para procurar vaga de emprego em programação?

@dragonballxpoficial
1 hour ago

Full Stack Pro x Fabrica de Aplicativos: Qual seria a diferença?

@fazetatsuya
1 hour ago

parabéns aula sensacional, sugestão para o próximo vídeo: plataforma de pagamento com validador de cartão

@cleverson461ibm
1 hour ago

conteúdo sensacional, muito bom.

@Alvaro__Jose10
1 hour ago

Mano vou fazer esse projeto amanha, vou marcar vc no insta.

24
0
Would love your thoughts, please comment.x
()
x