Когда дело доходит до добавления анимации в проект Next.js, на выбор доступно несколько библиотек. Тем не менее, есть несколько библиотек, которые выделяются как отличные варианты. В этой статье мы рассмотрим три популярные библиотеки анимации, которые хорошо подходят для проектов Next.js: Anime.js, GSAP и React Transition Group.

  1. Anime.js Anime.js — это облегченная библиотека анимации JavaScript, простая в использовании и с широкими возможностями настройки. Он позволяет создавать сложные анимации с минимальным кодом и имеет широкий спектр функций, включая управление временной шкалой, анимацию по ключевым кадрам и многое другое. Вот пример того, как использовать Anime.js для анимации элемента div:
import anime from 'animejs';

anime({
  targets: '.my-div',
  translateX: 250,
  rotate: '1turn',
  backgroundColor: '#FFF',
  duration: 800
});
  1. GSAP GSAP (GreenSock Animation Platform) — это библиотека анимации JavaScript, которая широко используется в профессиональной веб-разработке. Он известен своей высокой производительностью и расширенными функциями, такими как настраиваемое плавность и ступенчатая анимация. Вот пример того, как использовать GSAP для одновременной анимации нескольких элементов:
import { TweenMax, TimelineMax } from "gsap";

const tl = new TimelineMax();
tl.to('.my-div', 1, {x: 100, y: 200})
  .to('.my-div', 1, {rotation: 180}, "-=0.5")
  .to('.my-div', 1, {scale: 2}, "-=0.5");
  1. React Transition Group React Transition Group — это популярная библиотека анимации, специально разработанная для использования с React. Он предоставляет набор компонентов для управления жизненным циклом элементов во время переходов. Вот пример использования React Transition Group для анимации компонента:
import { CSSTransition } from 'react-transition-group';

function MyComponent() {
  const [show, setShow] = useState(false);

  return (
    <div>
      <CSSTransition in={show} timeout={300} classNames="fade">
        <div className="my-div">My Component</div>
      </CSSTransition>
      <button onClick={() => setShow(!show)}>Toggle</button>
    </div>
  );
}

Все эти библиотеки — отличные варианты для добавления анимации в проект Next.js. Каждый из них имеет свои уникальные особенности и преимущества, поэтому важно учитывать конкретные потребности вашего проекта, прежде чем решить, какой из них использовать. Надеюсь, приведенные здесь примеры послужат вам хорошей отправной точкой для экспериментов с этими библиотеками.