원본 포스트를 확인하세요 devaradise.com/javascript-react-animation-l.. 을(를) 통해 콘텐츠 목록과 함께 더 나은 ナビゲーション을 제공합니다.
애니메이션은 웹 응용 프로그램을 좋아하는 것에서 더 나은 것으로 가져가는 데 도울 수 있습니다. 그들은 시각적 피드백을 제공하고 사용자를 인터페이스로 안내하며 프로젝트에 个性化的 Touche를 Add합니다.
간단한 CSS-based 라이브러리에서 到低 complex animations을 만들 수 있는 강력한 JavaScript 라이브러리까지, 많은 애니메이션 라이브러리가 있습니다. 이 記事에서는 React와 현代적인 웹 응용 프로그램에서 사용할 수 있는 15가지 가장 좋은 애니메이션 라이브러리에 대해 자세히 다룹니다.
잘 알려진 React Spring과 Framer Motion에서 특수화된 라이브러리들이나 Vivus와 Three.js까지, 여러분의 웹 프로젝트를 빛나게 만들 수 있는 것을 발견할 수 있습니다. 이러한 라이브러리에 대해 探求하고 이들이 여러분의 웹사이트 사용자 경험을 어떻게 변화시킬 수 있는지 확인하고 보세요!
일반적인 사용 사례에 대한 애니메이션 라이브러리
1. Animate.css – CSS 애니메이션
Animate.css는 이미지를 簡単하게 애니메이션 적용할 수 있는 인기 있는 CSS 라이브러리입니다. GitHub에서 80.2k 스타를 받고, npm 다운로드 수가 수百万이나 되어 素早く 간단한 애니메이션을 구현할 때 的首选题입니다.
설치와 기본 사용
npm install animate.css
import 'animate.css';
<div class="animate__animated animate__bounce">An animated element</div>
가장 좋은 사용 사례
Animate.css는 素的 JavaScript를 사용하지 않고 素早게 구현해야 하는 간단한 애니메이션에 가장 적합합니다.
장점
용이하게 사용하며, 가벼우며, 애니메이션 종류가 많습니다.
단점
CSS 애니메이션 限度이 있으며, 애니메이션 행위에 대한 통제가 덜 있습니다.
2. React Spring
React Spring은 React에서 사용하는 인기 있는 애니메이션 라이브러리입니다. GitHub에서 27.8k 스타를 받고 커뮤니티에서 널리 사용되고 있습니다.
설치와 기본 사용
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;
가장 좋은 사용 사례
복잡한 애니메이션을 만들 때 변화와 interaction에 대한 精細하게 조절할 수 있는 것입니다.
장점
매우 유연하고, 고급 애니메이션을 지원하며, 좋은 커뮤니티 지원입니다.
단점
시작자들에 대해 배우는 曲线上이 덜 없을 수 있습니다.
3. Framer Motion
Framer Motion은 기능이 넓고 사용이 간편한 애니메이션 라이브러리로 유명합니다. GitHub에서 22.8k 스타를 받고 直観적인 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, 关键帧 애니메이션 지원, 뛰어난 文档。
단점
다른 라이브러리와 比较해서 조금 larger bundle size가 있습니다。
4. Anime.js
Anime.js는 강력한 API를 갖춘 가벼운 JavaScript 애니메이션 라이브러리입니다. GitHub에서 49.2k 스타를 받고 错綜复杂하고 高度に customizeble한 애니메이션을 생성하는 것에 대해 幅広く 사용되고 있습니다.
설치와 기본적 사용
npm install animejs
import anime from 'animejs/lib/anime.es.js';
anime({
targets: 'div',
translateX: 250,
rotate: '1turn',
duration: 800
});
가장 좋은 사용 사례
错綜复杂하고 详详细细한 애니메이션을 精準하게 コントロール하는 것입니다。
장점
가벼움, 다양함, 高度に Customizeble합니다。
단점
JavaScript 지식이 필요하며, 간단한 애니메이션을 생성하는 것에 대해 복잡할 수 있습니다。
5. GSAP (GreenSock Animation Platform)
GSAP는 고성능과 풍부한 기능으로 잘 알려진 강력한 자바스크립트 애니메이션 라이브러리입니다. 깃허브에서 19.2만 개 이상의 별을 받았으며 웹과 모바일 애플리케이션 모두에서 널리 사용되고 있습니다.
설치 및 기본 사용법
npm install gsap
import { gsap } from 'gsap';
gsap.to('.box', { rotation: 27, x: 100, duration: 1 });
최고의 사용 사례
고성능 애니메이션 및 복잡한 시퀀스 제작.
장점
매우 강력하고 견고하며 고성능.
단점
더 큰 번들 크기, 학습 시간이 필요.
6. 팝모션
팝모션은 기능적이고 유연한 자바스크립트 애니메이션 라이브러리입니다. 프레임워크 모션에서 애니메이션을 구동합니다. 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는 웹에서 動画그래픽 도구밸트입니다. GitHub에서 18.3k 이상의 별을 받고 있으며, 애니메이션 생성에 대한 다양한 도구를 제공합니다.
설치와 기본적인 사용
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();
가장 좋은 사용 사례
複雑한 動画그래픽과 애니메이션 생성
장점
다양하고 강력한 것, 动画그래픽에 좋습니다.
단점
배우는 것이 Steeper learning curve, larger bundle size입니다.
특정 사용 사례에 대한 애니메이션 라이브러리
8. Remotion – React로 애니메이션 비디오 생성
Remotion는 React를 사용하여 프로그램적으로 비디오를 생성할 수 있는 ユニーク한 라이브러리입니다. GitHub에서 19.6k 이상의 별을 받았으며, 開発자는 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 그리기 애니메이션
Vivus는 SVG를 이용하여 애니메이션을 생성하는 가벼운 JavaScript 라이브러리입니다. GitHub에서 15,100여 개의 별을 받은 것으로 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로 만들어진 애니메이션을 렌더링하는 라이브러리입니다. GitHub에서 29,900여 개의 별을 받은 것으로 복잡한 애니메이션 integration에 널리 사용되고 있습니다.
설치와 기본적인 사용
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로 만들어진 애니메이션을 integrate하기
장점
高质量的 애니메이션, After Effects와 잘 결합됨
단점
애니메이션 생성시 After Effects가 필요, larger files
11. ScrollReveal
스크롤리vel(ScrollReveal)는 GitHub에서 22.2k 以上的 별을 받은 자바스크립트 라이브러리로, 뷰포트로 들어가거나 나가는 요소에 대한 动画을 쉽게 생성할 수 있습니다.
설치와 기본적인 사용
npm install scrollreveal
import ScrollReveal from 'scrollreveal';
ScrollReveal().reveal('.box', { delay: 500 });
<h1 class="headline">Widget Inc.</h1>
가장 좋은 사용 사례
스크롤 기반의 revel 动画 추가
장점
용이하게 사용할 수 있음, 가벼움, 스크롤 动画에 좋음
한계
스크롤 기반의 动画만 가능
12. ScrollMagic
ScrollMagic은 스크롤 인터랙션 및 动画을 생성하는 라이브러리입니다. GitHub에서 14.8k 以上的 별을 받은 것과 함께, 스크롤 기반의 动画을 이룰 수 있는 강력한 방법을 제공합니다.
설치와 기본적인 사용
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과 integrate well
한계
간단한 动画에서 복잡하게 느리고, larger bundle size
13. Typed.js
Typed.js는 인공 지능으로 입력되는 텍스트의 것처럼 보이는 자바스크립트 라이브러리로, GitHub에서 15.1k 以上的 별을 받았다, 자신의 입력 애니메이션을 추가하는 데에 좋은 도구이다.
설치와 기본적인 사용
npm install typed.js
import Typed from 'typed.js';
const typed = new Typed('#element', {
strings: ['<i>First</i> sentence.', '& a second sentence.'],
typeSpeed: 50
});
가장 좋은 사용 사례
텍스트의 입력 애니메이션 생성
장점
사용하기 쉬움, 가중치 적음, 입력 효과를 위한 좋은 도구
단점
입력 애니메이션 exclusive로 제한됨, 靈活动性이 낮い
고급 애니메이션 라이브러리
14. Three.js – 고급 자바스크립트 3D 라이브러리
Three.js는 자바스크립트에서 错綜複雑한 3D 애니메이션과 的可視화를 생성할 수 있는 强力한 3D 라이브러리로, GitHub에서 101k 以上的 별을 받았다, 3D 웹 응용 프로그램에 错綜複雑한 3D 애니메이션과 의 사용이 널리 되었다.
설치와 기본적인 사용
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);
가장 좋은 사용 사례
错綜複雑한 3D 애니메이션과 의 생성
장점
非常に 強力하며, 대면적 communities를 가지고 있으며, 错綜複雑한 3D 장면을 지원한다
단점
错綜複雑한 학습 경로, 更大的 捆绑 사이즈를 가지고 있다
15. Theatre.js
Theatre.js는 프로그램적으로 애니메이션을 생성하고 控制在하기 위한 고급 애니메이션 라이브러리입니다. GitHub에서 11k 이상의 별표를 기다리고 있으며, 시간轴기반의 방법을 제공합니다.
インストール 및 기본적 사용
# 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 />)
ベスト 사용 사례
细かい 컨트롤을 가지고 시간轴기반의 애니메이션 생성
장점
强力的한 시간轴 제어, 精細한 애니메이션 시퀀스
단점
신규 라이브러리, Smaller community, 初心者에 대해 복잡합니다.
결론
애니메이션 라이브러리를 선택하는 것은 프로젝트의 需要的과 複雑도에 따라 決まります。 simple, 素的な 애니메이션을 찾으시면 CSS-based libraries such as Animate.css를 이룰 수 있습니다. 더 복잡한 대화를 하고 высо高性能 需要的な 경우에는 GSAP나 Three.js 과 같은 강력한 라이브러리를 考虑하십시오.
각 라이브러리는 그 장점을 가지고 있으며, 이용 수요, 지원 커뮤니티, 필요한 특징 등을 기준으로 evaluate 할 수 있습니다. 이러한 トップ 애니메이션 라이브러리를 실험하기 전에 프로젝트에 적용합니다.
他に 기능이 뛰어난 라이브러리가 있다면? 楼下의 코멘트에 공유하십시오! 이 포스트가 도움이 되었다면, 동료 개발자들과 공유하고 이 웹사이트에서 더 많은 튜토리얼을 확인하십시오.
감사합니다. 좋은 하루 되세요!