Anime.js 是由 Julian Garnier 打造的一款轻量级 JavaScript 动画引擎,为网页动画领域贡献超过十年。2025 年,这个库经历了史上最重大的转变:从底层全面重写为版本 4(v4),将原本单一的 anime() 函数取代为模块化、以 ESM 为优先的 API。截至 2026 年初,Anime.js 在 GitHub 上拥有超过 58,000 颗星,活跃的 npm 发布版本也已推进到 v4.3.6,证明了在 CSS 动画与 WAAPI 盛行的时代,一套设计良好的动画库仍能蓬勃发展。
第 4 版不仅仅是增量更新,而是一次理念上的转变:不再是单一函数包办所有功能,v4 提供离散、可 tree-shaking 的模块,按名称导入即可使用。核心的 animate() 函数取代了旧有的 anime()。参数经过重新命名(value 属性改为 to,easing 改为 ease),并新增了多项全新系统——通过 createSpring 实现弹簧物理、拖拽交互、SVG 运动路径、文本分割,以及仅 3 KB 的 WAAPI 集成。最终成果是一个既熟悉又远比以往强大的库,能够在 3000 个 DOM 元素上驱动每秒 60 帧的动画,同时融入现代构建流程而不增加多余体积。
本指南涵盖 2026 年使用 Anime.js v4 所需的一切知识:安装方式、模块化 API、从 v3 升级的重大变更、弹簧物理、时间轴、SVG 与文本动画、性能特性,以及 v4.2 和 v4.3 系列的最新功能。
最后更新:2026 年 5 月 2 日——基于 animejs.com 官方文档与 juliangarnier/anime 仓库。
目录
- Anime.js v4 有哪些新功能?
- 从 v3 升级到 v4 的重大变更
- 如何安装与导入 Anime.js v4?
- 核心 API:animate() 函数
- v4 的关键帧
- 合成模式:Replace、Blend 与 None
- 使用 createSpring 的弹簧物理
- 时间轴与标签位置
- SVG 动画模块
- 使用 splitText 的文本动画
- 拖拽交互
- createScope 的框架集成
- WAAPI 集成
- 引擎设置与性能
- 版本历史:v4.2 与 v4.3
- 延伸阅读与资源
Anime.js v4 有哪些新功能?
直接回答:Anime.js v4 是一次全面重写,以模块化 ESM 优先的 API 取代了单一的
anime()函数。它引入了弹簧物理、四种语法的关键帧、带标签位置的增强时间轴、用于框架绑定的 createScope、createDraggable、SVG 变形与运动路径、splitText、WAAPI,以及引擎级别的设置——全部在数千个元素上维持 60fps 的性能。
Anime.js v4 于 2025 年 4 月发布,历经五年的开发,代表了整体架构的大翻新。以下是每个主要新系统的摘要:
| 功能 | 模块 | 说明 |
|---|---|---|
| 模块化 API | 核心(animejs) | 可 tree-shaking 的 ESM 导入:animate、stagger、createTimeline 等 |
| 弹簧物理 | animejs | createSpring() 含质量、刚度、阻尼、速度、弹跳 |
| 关键帧 | 核心 | 四种语法:数组式、持续时间式、百分比式、偏移式 |
| 合成模式 | 核心 | replace、blend 或 none,用于叠加动画 |
| 增强时间轴 | animejs/timeline | 标签位置(<<、<=、LABEL、LABEL+=N)、.call()、.sync() |
| createScope | animejs/scope | 限域 DOM 查询与框架组件的自动清理 |
| createDraggable | animejs/draggable | 拖拽、吸附、轻弹、抛掷,释放时结合弹簧物理 |
| SVG 模块 | animejs/svg | createMotionPath、createDrawable、变形 |
| 文本模块 | animejs/text | splitText 支持 Intl.Segmenter |
| WAAPI 集成 | animejs | 使用 Web Animations API 的 3 KB 替代方案 |
| 引擎设置 | animejs/engine | 帧率、精确度、全局默认、页面隐藏时暂停 |
| CSS 变量 | 核心 | 直接对 CSS 自定义属性进行动画 |
| createLayout | animejs(v4.3) | 在布局状态之间自动生成动画 |
架构一览
mindmap
root((Anime.js v4))
核心
animate
stagger
createTimer
createTimeline
createSpring
createLayout
waapi
engine
SVG
createMotionPath
createDrawable
morphTo
文本
splitText
交互
createDraggable
createScope
工具
random
round
lerp
createSeededRandom
get
set
remove从 v3 升级到 v4 的重大变更
直接回答:最重要的变更包括:
anime()改为animate()、value改为to、easing改为ease,以及alternate等方向标记从字符串值改为布尔属性。
如果您要从 Anime.js v3 迁移,每一个调用位置都需要更新。API 表面经过精心简化与重新命名,以求一致性。下表列出了每个 v3 API 对应的 v4 版本。
参数变更
| v3(已弃用) | v4(现行) | 说明 |
|---|---|---|
anime({targets: ...}) | animate(targets, {...}) | Targets 现在是第一参数 |
value: 100 | to: 100 | 关键帧属性重新命名 |
easing: 'easeOutQuad' | ease: 'outQuad' | 去掉 ease 前缀;省略 easeIn/easeOut |
direction: 'reverse' | reversed: true | 布尔值,非字符串 |
direction: 'alternate' | alternate: true | 布尔值,非字符串 |
endDelay | loopDelay | 为清晰起见重新命名 |
round: 100 | modifier: utils.round(2) | 现在使用修饰函数 |
autoplay: false | autoplay: false | 未变更 |
loop: true | loop: true | 未变更(循环次数 0 = 不循环) |
回调变更
| v3(已弃用) | v4(现行) |
|---|---|
begin | onBegin |
update | onUpdate |
change | onRender |
complete | onComplete |
loopBegin / loopComplete | onLoop |
模块变更
| v3(全局) | v4(导入) |
|---|---|
anime.timeline() | 来自 animejs/timeline 的 createTimeline() |
anime.stagger() | 来自 animejs 的 stagger() |
anime.path() | 来自 animejs/svg 的 createMotionPath() |
anime.setDashoffset() | 来自 animejs/svg 的 createDrawable() |
anime.reverse() | animation.reverse()(实例方法) |
.finished(Promise) | .then(callback)(实例方法) |
如何安装与导入 Anime.js v4?
直接回答:运行
npm install animejs@latest,然后以import { animate, stagger } from 'animejs'的方式导入模块。若使用 CDN,可用 ESM 语法从 esm.sh 或 jsDelivr 导入。
安装遵循标准的 npm 惯例:
# 安装最新版本(截至 2026 年 5 月为 v4.3.6)
npm install animejs@latest
# 或安装指定版本
npm install animejs@4.3.6
模块导入路径
Anime.js v4 从 v4.2.0 起支持子路径导入。每个模块可单独导入,以达到最佳的 tree-shaking 效果:
// 核心——永远可用
import { animate, stagger, createSpring, createTimer } from 'animejs';
import { waapi } from 'animejs';
import { engine, defaults } from 'animejs';
import { utils } from 'animejs';
// 子路径导入(v4.2+)
import { createTimeline } from 'animejs/timeline';
import { createScope } from 'animejs/scope';
import { createDraggable } from 'animejs/draggable';
import { splitText } from 'animejs/text';
import { createMotionPath, createDrawable } from 'animejs/svg';
import { eases, spring } from 'animejs/easings';
CDN 用法
<script type="module">
import { animate, stagger } from 'https://esm.sh/animejs@4.3.6';
animate('.box', {
x: { to: 300 },
duration: 1000,
ease: 'outQuint',
});
</script>
核心 API:animate() 函数
直接回答:
animate(targets, params)是主要的入口点。它接受 CSS 选择器、DOM 元素、NodeList 或 JavaScript 对象作为目标。参数包括to、from、ease、duration、delay、loop、alternate、reversed、composition、modifier以及所有回调函数。
animate() 函数接受两个参数:目标与参数对象。以下是完整的参数参考:
animate('.element', {
// 动画属性
x: { to: 300 }, // 单一属性含 from/to
rotate: { from: 0, to: 360 }, // 明确指定 from 与 to
scale: 2, // 简写(等同于 to: 2)
backgroundColor: '#ff0', // CSS 颜色(支持含透明度的十六进制:#ff0a)
// 时间设置
duration: 1000, // 毫秒(默认值因情况而异)
delay: 200, // 开始前的延迟
ease: 'outQuint', // 缓动函数(参见下方缓动表)
loop: 2, // 额外重复次数(0 = 不循环)
alternate: true, // 每次循环时反向
reversed: false, // 从结束值开始
loopDelay: 0, // 循环之间的暂停(取代 v3 的 endDelay)
// 渲染
composition: 'replace', // 'replace' | 'blend' | 'none'
modifier: utils.round(2), // 数值后处理
frameRate: 60, // 限制 FPS
playbackRate: 1, // 速度倍率
// 回调
onBegin: () => {}, // 动画(含延迟)开始时
onBeforeUpdate: () => {}, // 每次更新 tick 之前
onUpdate: (anim) => {}, // 每一帧
onRender: (anim) => {}, // 数值实际变更时
onLoop: (anim) => {}, // 每次循环结束时
onPause: (anim) => {}, // 暂停时
onComplete: (anim) => {}, // 完全结束时
});
缓动函数参考
Anime.js v4 移除了缓动名称中的 ease 前缀(使用 'outQuad' 而不是 'easeOutQuad')。自定义缓动可以传入函数或使用 createSpring() 创建。
| 缓动名称 | 说明 |
|---|---|
'linear' | 恒定速度 |
'outQuad' | 缓慢减速 |
'inQuad' | 缓慢加速 |
'inOutQuad' | 起止皆缓 |
'outCubic' | 温和减速 |
'inOutCubic' | 平滑起止 |
'outQuint' | 强烈减速 |
'inOutQuint' | 明显缓动 |
'outExpo' | 指数级减速 |
'inOutElastic' | 两端弹性效果 |
'outBounce' | 结束时弹跳 |
'outBack' | 过冲后回弹 |
v4 的关键帧
直接回答:Anime.js v4 支持四种关键帧语法:数组式(每个项目是一个含自定义 to/from 的关键帧)、持续时间式、百分比式以及偏移式——让您精细控制多步骤动画。
Anime.js v4 引入了四种不同的关键帧语法,各自适用于不同的使用场景:
// 1. 数组式(最灵活——每个元素是一个关键帧)
animate('.box', [
{ rotate: { to: 90 }, duration: 500 },
{ rotate: { to: 180 }, duration: 500 },
{ rotate: { to: 360 }, duration: 500 },
]);
// 2. 持续时间式(进度根据持续时间计算)
animate('.box', {
rotate: {
0: 0, // 0ms——开始
500: 90, // 500ms——关键帧 1
1000: 180, // 1000ms——关键帧 2
2000: 360, // 2000ms——关键帧 3
}
});
// 3. 百分比式(进度相对于总持续时间)
animate('.box', {
rotate: {
'0%': 0,
'25%': 90,
'50%': 180,
'100%': 360,
}
});
// 4. 偏移式(明确偏移量以精确控制时间)
animate('.box', {
rotate: { to: 360 },
offset: [0, 500, 1000, 2000],
value: [0, 90, 180, 360],
});
合成模式:Replace、Blend 与 None
直接回答:
composition参数控制重叠动画的交互方式。replace(默认)在动画进行中切换数值,blend在重叠数值之间插值,而none则让动画独立运行。
当多个动画同时影响同一个属性时,composition 模式决定了行为:
| 模式 | 行为 | 最适合 |
|---|---|---|
'replace'(默认) | 新动画立即接管;旧值被覆盖 | 顺序动画、悬停过渡 |
'blend' | 重叠动画的数值会一起插值 | 平滑叠加效果 |
'none' | 动画独立运行,不进行合成计算 | 高性能场景,独立元素 |
// Blend 示例——两个重叠的颜色动画平滑融合
animate('.box', {
backgroundColor: { to: '#f00' },
duration: 1000,
});
animate('.box', {
backgroundColor: { to: '#00f' },
duration: 1000,
delay: 500,
composition: 'blend', // 通过紫色从红色插值到蓝色
});
使用 createSpring 的弹簧物理
直接回答:
createSpring()产生基于物理的缓动函数,参数包含mass(质量)、stiffness(刚度)、damping(阻尼)、velocity(速度)以及bounce(弹跳,v4.2+)。将结果传给ease参数,即可获得自然的物理驱动运动。
弹簧物理带来了传统缓动曲线无法比拟的自然运动感。Anime.js v4 将此作为一级功能:
import { animate, createSpring } from 'animejs';
const spring = createSpring({
mass: 1, // 越大 = 振荡越慢
stiffness: 200, // 越高 = 越干脆
damping: 10, // 越高 = 弹跳越少
velocity: 0, // 初始速度
bounce: 0.5, //(v4.2+)控制弹簧弹跳强度,0-1
});
animate('.ball', {
translateY: { to: 300 },
ease: spring,
loop: true,
alternate: true,
});
弹簧参数比较
| 参数 | 范围 | 效果 |
|---|---|---|
mass | 0.1 – 10 | 质量越小,速度越快、反应越灵敏 |
stiffness | 1 – 500 | 越高,回到静止状态越干脆 |
damping | 1 – 50 | 越高,振荡消失越快 |
velocity | 任意数 | 初始推动方向与力度 |
bounce(v4.2+) | 0 – 1 | 0 = 无弹跳,1 = 最大弹跳 |
时间轴与标签位置
直接回答:
createTimeline()使用add()和set()方法创建序列化动画。v4 时间轴支持标签位置(<<、<=、LABEL_NAME)、明确偏移量(+=500、-=200),以及新的方法如.call()、.sync()、.label()和.set()。
v4 的时间轴功能大幅强化。标签取代了旧的位置系统,提供更易读的语法:
import { createTimeline } from 'animejs/timeline';
const tl = createTimeline({
defaults: { ease: 'outQuad', duration: 300 },
loop: 1,
});
// 使用位置标签加入动画
tl.add('.box-a', { x: { to: 200 } }) // 立即开始
.add('.box-b', { scale: { to: 1.5 } }, '+=200') // 前一个结束后 200ms
.add('.box-c', { rotate: { to: 180 } }, '<<') // 前一个动画的起点
.label('midpoint') // 命名标记
.add('.box-d', { y: { to: 100 } }, 'midpoint') // 在标签位置
.add('.box-e', { opacity: { to: 0 } }, 'midpoint+=500') // 标签后 500ms
.play();
时间轴位置语法
| 位置 | 含义 |
|---|---|
'+=500' | 前一个动画结束后 500ms |
'-=200' | 前一个动画结束前 200ms |
'<<' | 与前一个动画的起点对齐 |
'<=' | 与前一个动画的结束点对齐 |
'midpoint' | 在指定的命名标签位置 |
'midpoint+=300' | 命名标签后 300ms |
stagger(80) | 使用 stagger 函数的交错偏移(v4 新增!) |
sequenceDiagram
participant t0 as 0ms
participant t1 as +300ms
participant t2 as +600ms
participant t3 as +900ms
Note over t0: tl.add(box-a, { x: 200 })
Note over t1: tl.add(box-b, { scale: 1.5 }, '+=200')
Note over t2: tl.add(box-c, { rotate: 180 }, '<<')
Note over t3: tl.add(box-d, { y: 100 }, 'midpoint')SVG 动画模块
直接回答:来自
animejs/svg的 SVG 模块提供createMotionPath(沿路径运动)、createDrawable(线条绘制动画),以及 SVG 形状之间的内置变形功能——全部由核心animate()函数驱动。
SVG 动画是 Anime.js 的旗舰功能之一。V4 将此组织为专用模块:
运动路径
import { animate } from 'animejs';
import { createMotionPath } from 'animejs/svg';
const { translateX, translateY, rotate } = createMotionPath('#path');
animate('.car', {
translateX,
translateY,
rotate,
duration: 3000,
ease: 'outQuint',
});
createMotionPath 函数现在支持 offset 参数(v4.2.1),用于设置元素相对于路径的位置。
线条绘制(createDrawable)
import { createDrawable } from 'animejs/svg';
const drawable = createDrawable('#my-path'); // 或 createDrawable('path')
animate(drawable, {
draw: '0 1', // 从绘制 0% 到 100%
duration: 2000,
ease: 'outQuad',
});
形状变形
// 将一个路径变形成另一个
animate('#shape', {
d: { to: '#target-shape' }, // 变形路径数据
duration: 1500,
ease: 'inOutQuint',
});
使用 splitText 的文本动画
直接回答:来自
animejs/text的splitText()使用浏览器的 Intl.Segmenter API 将文本拆分为字符、单词和行。它将每个片段包裹在可设置的 HTML 元素中,以便进行逐片段动画。
文本模块让文本揭示与动态排版变得简单直接:
import { splitText } from 'animejs/text';
const split = splitText({
text: 'Anime.js v4 makes text dance!',
by: 'word', // 'char' | 'word' | 'line' | 'all'
tag: 'span', // 用于包裹每个片段的 HTML 元素
});
然后您可以单独对生成的节点进行动画:
import { animate, stagger } from 'animejs';
animate(split.nodes, {
translateY: { from: -20, to: 0 },
opacity: { from: 0, to: 1 },
duration: 600,
delay: stagger(50), // 每个单词/字符交错出现
ease: 'outQuad',
});
splitText 选项
| 选项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
by | string | 'char' | 'char'、'word'、'line' 或 'all' |
tag | string | 'span' | 包装元素类型 |
class | string | '' | 包装器的 CSS 类 |
wrap | string | '' | 行元素的包装器 |
lines | boolean | true | 保留换行 |
clone | boolean | false | 为效果复制节点 |
includeSpaces | boolean | false | 对空格字符也进行动画 |
accessible | boolean | true | 通过 aria-label 维持无障碍性 |
拖拽交互
直接回答:来自
animejs/draggable的createDraggable()支持拖拽、吸附、轻弹和抛掷交互。它与createSpring()搭配使用,提供基于物理的释放缓动,并支持边界、吸附目标和拖拽阈值。
Draggable 是 v4 中新增的模块,提供完整的拖放交互:
import { createDraggable, createSpring } from 'animejs';
const drag = createDraggable({
el: '.card',
container: '.stack',
bounds: { x: [0, 400], y: [0, 400] },
releaseEase: createSpring({ stiffness: 150, damping: 15 }),
dragThreshold: 10, //(v4.2.1+)开始拖拽前的最小像素数
onStart: () => {},
onDrag: () => {},
onDrop: () => {},
onSnap: () => {},
});
// 后续使用
drag.destroy();
拖拽设置
| 设置 | 类型 | 默认值 | 说明 |
|---|---|---|---|
el | Element | 必填 | 可拖拽的元素 |
container | Element | document.body | 限制移动范围的容器 |
bounds | Object | – | { x: [min, max], y: [min, max] } |
releaseEase | Function | eases.outQuint | 释放时的缓动(支持 spring()) |
dragThreshold | Number | 0 | 启动拖拽的最小距离(v4.2.1) |
onStart | Function | – | 拖拽开始时调用 |
onDrag | Function | – | 拖拽期间调用 |
onDrop | Function | – | 释放时调用 |
createScope 的框架集成
直接回答:
createScope()提供一个限域环境,包含qs()、qsa()和registerMethod()等辅助方法,以及用于清理的revert()方法——非常适合 Svelte、React 或 Vue 的组件生命周期。
框架集成是 v4 的一级关注事项。createScope() 消除了手动管理查询选择器和内存泄漏的问题:
import { createScope } from 'animejs/scope';
// 在 Svelte onMount / React useEffect 内部
const scope = createScope({ root: containerElement });
// 限域查询选择器
scope.qs('.card'); // 仅在根元素范围内
scope.qsa('.item'); // 根元素内所有符合的元素
// 注册自定义方法
scope.registerMethod('customAnimation', (el) => {
animate(el, { scale: 1.2 });
});
// 卸载时清理
onDestroy(() => scope.revert());
WAAPI 集成
直接回答:WAAPI 模块(来自
animejs的waapi)提供相同的 Anime.js 语法,但通过浏览器原生 Web Animations API 驱动动画,产生的捆绑体积仅 3 KB。它支持相同的animate()签名、stagger()和缓动函数。
对于捆绑体积至关重要的项目,WAAPI 集成提供了一个极具吸引力的替代方案:
import { waapi, stagger } from 'animejs';
waapi.animate('span', {
translate: '0 -2rem',
delay: stagger(100),
duration: 600,
loop: true,
alternate: true,
ease: 'inOut(2)',
});
何时使用 WAAPI 与核心引擎:
| 场景 | 建议 |
|---|---|
| 最大程度节省捆绑体积 | WAAPI(3 KB) |
| 最大元素数量(3000+) | 核心引擎(大规模下 60fps) |
| SVG 动画 | 核心引擎 |
| 弹簧物理 | 核心引擎 |
| 简单 CSS 过渡 | WAAPI |
| 浏览器原生性能 | WAAPI |
引擎设置与性能
直接回答:
engine模块暴露全局设置,包括帧率上限(v4.3 中可达 240 FPS)、默认参数、播放时间单位,以及在文档隐藏时的自动暂停行为。
引擎设置
import { engine } from 'animejs';
engine.defaults = { duration: 500, ease: 'outQuad' }; // 全局默认
engine.useDefaultMainLoop = false; // 禁用内置循环
engine.update(); // 手动更新帧
engine.pauseOnDocumentHidden = true; // 标签页隐藏时暂停
engine.timeUnit = 'ms'; // 'ms' 或 's'
engine.precision = 2; // 数值的十进制精确度
性能基准
Anime.js v4 的渲染引擎已针对大规模动画进行优化:
| 场景 | 元素/补间 | 性能 |
|---|---|---|
| DOM 元素(CSS 变换) | 3000 个元素,6000 个补间 | 2019 年 Intel MacBook Pro 上 60 fps |
| three.js InstancedMesh | 50000 个网格值,100000 个补间 | 流畅 60 fps |
| WAAPI 路径 | 因浏览器引擎而异 | 浏览器原生性能 |
| 引擎帧率上限(v4.3+) | – | 最高 240 fps |
| 最小捆绑(WAAPI) | – | 约 3 KB gzipped |
浏览器支持
| 浏览器 | 最低版本 |
|---|---|
| Chrome | 79+ |
| Edge | 79+ |
| Firefox | 71+ |
| Safari | 13+ |
Anime.js v4 不支持 Internet Explorer。
版本历史:v4.2 与 v4.3
直接回答:v4.2 系列(2025 年 9 月)新增了弹簧
bounce、WAAPI 缓动、CSS 变量值以及子路径导入。v4.3 系列(2026 年 1 月至 2 月)新增了createLayout,将最大 FPS 提升至 240,并发布了多项错误修复。
该库在 2025 和 2026 年期间保持活跃维护,发布节奏快速:
| 版本 | 日期 | 主要变更 |
|---|---|---|
| v4.0.0 | 2025 年 4 月 | 初始 v4 发布:模块化 API、新参数、时间轴、弹簧、拖拽、SVG、文本 |
| v4.2.0 | 2025 年 9 月 | 弹簧 bounce 参数、子路径导入、createSeededRandom、CSS 变量值、WAAPI 缓动 |
| v4.2.1 | 2025 年 10 月 | SVG createMotionPath 偏移、Draggable dragThreshold |
| v4.3.0 | 2026 年 1 月 20 日 | createLayout()、函数式缓动、时间轴合成、最大 FPS 120 -> 240 |
| v4.3.1 | 2026 年 1 月 21 日 | 错误修复:内联标签检测与注释(Layout) |
| v4.3.2 | 2026 年 1 月 23 日 | 错误修复:来自 v4.3.1 的内联标签回归 |
| v4.3.3 | 2026 年 1 月 23 日 | 函数式 from 值的刷新支持、刷新时的单位转换、onResize 回调 |
| v4.3.4 | 2026 年 1 月 24 日 | WAAPI 同步自动持久化、注释语法修复 |
| v4.3.5 | 2026 年 1 月 25 日 | Auto Layout 内联回归修复、背景颜色回归修复 |
| v4.3.6 | 2026 年 2 月 14 日 | Auto Layout onScroll 同步修复 |
timeline
title Anime.js v4 发布时间轴(2025-2026)
April 2025 : v4.0.0 : 模块化 API 重写
September 2025 : v4.2.0 : 弹簧弹跳、子路径导入
October 2025 : v4.2.1 : SVG 偏移、dragThreshold
January 2026 : v4.3.0 : createLayout、240 FPS
January 2026 : v4.3.1-3.5 : 错误修复系列
February 2026 : v4.3.6 : 滚动同步布局延伸阅读与资源
- Anime.js 官方网站 – 完整文档、在线演示与游乐场
- GitHub 仓库:juliangarnier/anime – 源代码、议题与发布版本
- npm 包:animejs – 最新版本与安装
- Anime.js v4 重大变更 Wiki – 官方 v3 到 v4 迁移指南
- DeepWiki API 参考 – 社区维护的完整 API 文档
- libs.tech 上的 Anime.js – 依赖分析与捆绑体积分解
Anime.js 由 Julian Garnier 创建与维护,并以 MIT 许可发布。本指南根据官方 animejs.com 文档、juliangarnier/anime GitHub 仓库以及社区资源编写。最后更新于 2026 年 5 月 2 日。
