Проверите оригинальный пост devaradise.com/javascript-react-animation-l.. для лучшего навигации с главным указателем.
Анимации могут превратить ваши веб-приложения с хорошими в отличные, добавляя им больше интерактивности и захватывая внимание пользователей. Они обеспечивают визуальную обратную связь, направляют пользователей через интерфейс и придают проектам особую personalность.
Есть много библиотек анимаций, начиная от простых, основанных на CSS библиотек и заканчивая мощными JavaScript библиотеками, способными создавать сложные анимации. В этой статье мы погрузимся в 15 лучших библиотек анимаций для React и современных веб-приложений.
От известных React Spring и Framer Motion до специализированных библиотек, таких как Vivus и Three.js, вы найдете здесь то, что вам нужно, чтобы сделать ваши веб-проекты яркими. Explore этих библиотек и узнайте, как они могут изменить пользовательский опыт вашего сайта!
Библиотеки анимаций для общего использования
1. Animate.css – CSS Анимация
Animate.css — популярный CSS-библиотека, которая предоставляет широкий выбор предdefinitionнных анимаций, что simplifies применение анимаций к любому веб-проекту. C более чем 80,2 тыс. звездами на GitHub и миллионами download-ов via npm, Animate.css является go-to выбором для быстрой и простой анимации.
Установка и базовая работа
npm install animate.css
import 'animate.css';
<div class="animate__animated animate__bounce">An animated element</div>
Лучшее использование
Animate.css лучше подходит для простых анимаций, которые нужны быть реализованы быстро без необходимости JavaScript.
Плюсы
легко использовать, лёгкий вес, большой выбор анимаций.
Минусы
Ограниченность CSS-анимациями, меньшее control над поведением анимации.
2. React Spring
React Spring — популярная библиотека анимаций для React, предоставляя мощный и flexible способ создания анимаций на основе физики прутки. C более чем 27,8 тыс. звездами на GitHub и широким использованием в сообществе.
Установка и базовая работа
npm install @react-spring/web
import React from 'react';
import { useSpring, animated } from '@react-spring/web';
const App = () => {
const springs = useSpring({
from: { x: 0 },
to: { x: 100 }
});
return (
<animated.div
style={{
width: 80,
height: 80,
background: '#ff6d6d',
borderRadius: 8
}}
/>
);
};
export default App;
Лучшее использование
Создание сложных анимаций с fine-tuned контролем переходов и взаимодействий.
Плюсы
Высокая гибкость, поддержка avanced анимаций, хорошая поддержка сообщества.
Минусы
легкая трудность для начинающих.
3. Framer Motion
Framer Motion — мощная библиотека анимации, известная своей простотой использования и комплексными функциями. У неё более 22,8 тыс. звезд на GitHub и широко высоко оценена за ее интуитивный API.
Установка и базовая работа
npm install framer-motion
import React from 'react';
import { motion } from 'framer-motion';
const App = () => {
return (
<motion.div initial={{ opacity: 0 }} animate={{ opacity: 1 }} transition={{ duration: 1 }}>
Hello, Framer Motion!
</motion.div>
);
};
export default App;
Лучшее использование
Создание гладких и привлекательных анимаций с минимальным кодом.
Плюсы
Интуитивный API, поддержка ключевых кадров анимации, отличная документация.
Минусы
Несколько больше размера пакета по сравнению с другими библиотеками.
4. Anime.js
Anime.js — легкая JavaScript-библиотека анимации с мощным API. У неё более 49,2 тыс. звезд на GitHub и широко используется для создания сложных и высоконастраиваемых анимаций.
Установка и базовая работа
npm install animejs
import anime from 'animejs/lib/anime.es.js';
anime({
targets: 'div',
translateX: 250,
rotate: '1turn',
duration: 800
});
Лучшее использование
Создание тонких и детальных анимаций с точным контролем.
Плюсы
Легкая, гибкая, высоконастраиваемая.
Минусы
Требует знания JavaScript, может быть сложной для простых анимаций.
5. GSAP (GreenSock Animation Platform)
GSAP — мощная JavaScript-библиотека анимации, известная своим высоким показателем производительности и обширным набором функций. У нее на GitHub более 19,2 тысяч звезд и широко используется в веб-и мобильных приложениях.
Установка и базовая работа
npm install gsap
import { gsap } from 'gsap';
gsap.to('.box', { rotation: 27, x: 100, duration: 1 });
Лучшее использование
Высокопроизводительные анимации и сложные последовательности.
Плюсы
Очень мощна, надежда, высокая производительность.
Минусы
Большой размер пакета, требуется время для обучения.
6. Popmotion
Popmotion — функциональная, гибкая JavaScript-библиотека анимации. Она обеспечивает анимации в Framer Motion. У нее на GitHub более 19,9 тысяч звезд и предлагает целый ряд инструментов для создания анимаций и взаимодействий.Установка и базовая работа
Лучшее использование
npm install popmotion
import { animate } from 'popmotion';
animate({
from: 0,
to: 100,
onUpdate: (latest) => {
console.log(latest);
}
});
Создание низкоуровневых, сложных взаимодействий и высоконастраиваемых анимаций.
Плюсы
Функциональный API, гибкая, масштабируемая и маленькая размер пакета.
Минусы
может быть сложной для простых условий использования.
7.
Mo.js
Mo.js – это набор инструментов для анимации и движения на веб-стране. у него более 18,3 тыс. звезд на GitHub и предлагает различные инструменты для создания анимаций.
Установка и базовая работа
npm install @mojs/core
import { Mojs } from '@mojs/core';
const bouncyCircle = new mojs.Shape({
parent: '#bouncyCircle',
shape: 'circle',
fill: { '#F64040': '#FC46AD' },
radius: { 20: 80 },
duration: 2000,
isYoyo: true,
isShowStart: true,
easing: 'elastic.inout',
repeat: 1
});
bouncyCircle.play();
Лучшее использование
Создание сложных анимаций движения и анимаций.
Плюсы
Universalны, мощный, отлично подходит для анимации движения.
Минусы
Крутой Learning curve, большой размер пакета.
Библиотеки анимации для специфических задач
8. Remotion – Generate Animation Video with React
Remotion позволяет создавать видео программно с использованием React. Это уникальная библиотека с более 19,6 тыс. звезд на GitHub, которая позволяет разработчикам использовать силу React для создания видеоконтента.
Установка и базовая работа
# new project
npx create-video@latest
# install to existing project
npm i --save-exact [email protected] @remotion/[email protected]
export const MyComposition = () => {
return null;
};
import React from 'react';
import {Composition} from 'remotion';
import {MyComposition} from './Composition';
export const RemotionRoot: React.FC = () => {
return (
<>
<Composition
id="Empty"
component={MyComposition}
durationInFrames={60}
fps={30}
width={1280}
height={720}
/>
</>
);
};
import { registerRoot } from 'remotion';
import { RemotionRoot } from './Root';
registerRoot(RemotionRoot);
Лучшее использование
Программное генерирование видео с использованием React.
Плюсы
Уникальная функциональность, использование навыков React, мощные возможности создания видео.
Минусы
Нишевое использование, может быть сложным для начинающих.
9. Vivus – SVG Drawing Animation
Вивус — это легкая JavaScript-библиотека для анимации SVG. C более 15,1 тыс. звезд на GitHub, это отличный выбор для создания анимаций SVG.
Установка и базовая работа
npm install vivus
import Vivus from 'vivus';
new Vivus(
'my-svg',
{
type: 'delayed',
duration: 200,
animTimingFunction: Vivus.EASE
},
myCallback
);
// svg
<object id='my-svg' type='image/svg+xml' data='link/to/my.svg'></object>;
Лучшее использование
Создание анимаций рисования для SVG.
Плюсы
Легкая, специализированная для SVG, легка в использование.
Минусы
Ограничена для SVG, не подходит для других типов анимаций.
10. Lottie for Web —Render After Effects Animations
Lottie — это библиотека для отображения анимаций, созданных в Adobe After Effects. C более 29,9 тыс. звезд на GitHub, она широко используется для интеграции сложных анимаций.
Установка и базовая работа
npm install lottie-web
import lottie from 'lottie-web';
import animationData from './animation.json';
lottie.loadAnimation({
container: document.getElementById('animation'),
renderer: 'svg',
loop: true,
autoplay: true,
animationData: animationData
});
Лучшее использование
Интеграция анимаций, созданных в After Effects.
Плюсы
High-quality animations, integrates well with After Effects.
Минусы
требует After Effects для создания анимаций, большие файлы.
11. ScrollReveal
ScrollReveal — JavaScript-библиотека для легкого анимирования элементов, появляющихся или исчезающих из видимости. С более чем 22,2 тыс. звезд на GitHub, она идеальна для анимаций, основанных на прокрутке.
Установка и базовая работа
npm install scrollreveal
import ScrollReveal from 'scrollreveal';
ScrollReveal().reveal('.box', { delay: 500 });
<h1 class="headline">Widget Inc.</h1>
Лучшее использование
Добавление анимаций прокрутки.
Плюсы
Легко использовать, легкая в сложности, отлично подходит для анимаций прокрутки
Минусы
Ограничено анимациями, основанными на прокрутке.
12. ScrollMagic
ScrollMagic — библиотека для создания взаимодействий и анимаций, основанных на прокрутке. C более чем 14,8 тыс. звезд на GitHub, она предлагает сильные возможности для обработки анимаций, основанных на прокрутке.
Установка и базовая работа
npm install scrollmagic
import ScrollMagic from 'scrollmagic';
const controller = new ScrollMagic.Controller();
var controller = new ScrollMagic.Controller();
// create a scene
new ScrollMagic.Scene({
duration: 100, // the scene should last for a scroll distance of 100px
offset: 50 // start this scene after scrolling for 50px
})
.setPin('#my-sticky-element') // pins the element for the the scene's duration
.addTo(controller); // assign the scene to the controller
Лучшее использование
Создание сложных взаимодействий и анимаций прокрутки.
Плюсы
Возможности, гибкость, хорошо интегрируется с GSAP.
Минусы
Может быть сложным для простых анимаций, большой размер пакета.
13. Typed.js
Тyped.js — JavaScript-библиотека, которая типает текст, делая его выглядеть, как если бы его вводил человек. C более 15,1 тыс. звезд на GitHub, она отлична для добавления анимаций набора текста.
Установка и базовая работа
npm install typed.js
import Typed from 'typed.js';
const typed = new Typed('#element', {
strings: ['<i>First</i> sentence.', '& a second sentence.'],
typeSpeed: 50
});
Лучшее использование
Создание анимаций набора текста.
Плюсы
Легко использовать, легкая вязка, отлична для эффектов набора.
Минусы
Ограничена анимациями набора, меньше гибкости.
Продвинутые библиотеки анимации
14. Three.js — продвинутая JavaScript-библиотека для трёхмерной графики
Three.js — мощная трёхмерная библиотека JavaScript, которая позволяет создавать сложные трёхмерные анимации и визуализации. C более 101 тыс. звезд на GitHub, она широко используется для трёхмерных web-приложений.
Установка и базовая работа
npm install three
import * as THREE from 'three';
const scene = new THREE.Scene();
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
const renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
Лучшее использование
Создание продвинутых трёхмерных анимаций и визуализаций.
Плюсы
Очень мощна, большая сообщество, поддержка сложных трёхмерных сцен.
Минусы
Сложный learning curve, большая размер пакета.
15. Theatre.js
Театр.js является avanced анимационной библиотекой для создания и управления анимациями программно. C более чем 11k звезд на GitHub, она предоставляет методологию основанную на time-line для анимаций.
Установка и базовая работа
# r3f and its dependencies
npm install --save react three @react-three/fiber
# Theatre.js
npm install --save @theatre/[email protected] @theatre/[email protected] @theatre/[email protected]
# Three.js types (when using Typescript)
npm install --save-dev @types/three
import * as THREE from 'three'
import { createRoot } from 'react-dom/client'
import React, { useRef, useState } from 'react'
import { Canvas, useFrame } from '@react-three/fiber'
import { getProject } from '@theatre/core'
// our Theatre.js project sheet, we'll use this later
const demoSheet = getProject('Demo Project').sheet('Demo Sheet')
const App = () => {
return (
<Canvas
camera={{
position: [5, 5, -5],
fov: 75,
}}
>
<ambientLight />
<pointLight position={[10, 10, 10]} />
<mesh>
<boxGeometry args={[1, 1, 1]} />
<meshStandardMaterial color="orange" />
</mesh>
</Canvas>
)
}
createRoot(document.getElementById('root')!).render(<App />)
Лучшее использование
Создание time-line базированных анимаций с тонкой настройкой.
Плюсы
Влажные time-line контролы, точные последовательности анимации.
Минусы
Новая библиотека, меньшее сообщество, сложна для начинающих.
Заключение
Выбор правильной анимационной библиотеки зависит от нужд вашего проекта и сложности. Если вы ищете простые, быстрые анимации, CSS-основанные библиотеки, такие как Animate.css, являются идеальными. Чтобы более сложные взаимодействия и высокие потребности производительности, рассмотрите мощные библиотеки, такие как GSAP или Three.js.
Каждая библиотека имеет свои силы, поэтому оцените их на основании таких факторов, как легкость использования, поддержка сообщества и требуемые специфические функции. Вы можете начать экспериментировать с этими лучшими анимационными библиотеками, прежде чем внедрить их в ваш проект.
Есть другие библиотеки, стоит упомянуть? Не задумывайтесь сообщить о них в комментарии ниже! Если вы нашел этот пост полезным, поделитесь им с вашими коллегами-разработчиками и исследователями более подробных руководств на этом сайте.
Спасибо. Добрый день!