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
4 hours ago

Obrigado pelo video! upp

@thiagomoura3288
4 hours ago

não funciona pára celual?

@pedrofernandes2402
4 hours ago

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

@adrianoramos7724
4 hours ago

Tem como usar com Tailwind?

@tainasantana4562
4 hours ago

muito bom, obrigada!

@maycondouglas3179
4 hours ago

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

@eduardomoura6896
4 hours 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
4 hours 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
4 hours 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
4 hours ago

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

@atejap
4 hours ago

Tem como usar com tailwindCss?

@darlanmartins7546
4 hours ago

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

@annakarolinafranz5946
4 hours ago

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

@leuzaoo
4 hours ago

Didática perfeita mano! Obrigado

@mgmoura
4 hours ago

conteudo mto legal. parabens !!

@JogandocomVini
4 hours ago

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

@dragonballxpoficial
4 hours ago

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

@fazetatsuya
4 hours ago

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

@cleverson461ibm
4 hours ago

conteúdo sensacional, muito bom.

@Alvaro__Jose10
4 hours ago

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

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