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
26 days ago

Obrigado pelo video! upp

@thiagomoura3288
26 days ago

não funciona pára celual?

@pedrofernandes2402
26 days ago

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

@adrianoramos7724
26 days ago

Tem como usar com Tailwind?

@tainasantana4562
26 days ago

muito bom, obrigada!

@maycondouglas3179
26 days ago

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

@eduardomoura6896
26 days 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
26 days 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
26 days 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
26 days ago

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

@atejap
26 days ago

Tem como usar com tailwindCss?

@darlanmartins7546
26 days ago

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

@annakarolinafranz5946
26 days ago

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

@leuzaoo
26 days ago

Didática perfeita mano! Obrigado

@mgmoura
26 days ago

conteudo mto legal. parabens !!

@JogandocomVini
26 days ago

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

@dragonballxpoficial
26 days ago

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

@fazetatsuya
26 days ago

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

@cleverson461ibm
26 days ago

conteúdo sensacional, muito bom.

@Alvaro__Jose10
26 days ago

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

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