Anime.js

0 更新于 2026-09-17 00:22
JavaScriptJS动画库Anime.js

Anime.js 是 Julian Garnier 开发的一款快速、多用途且轻量级的 JavaScript 动画引擎,通过简洁的 API 实现对 CSS 属性、SVG、DOM 属性和 JavaScript 对象的动画控制。

产品展示

Image placeholder

Image placeholder

Image placeholder

Image placeholder

Image placeholder

Image placeholder

Image placeholder

Image placeholder

↑

声明:文档由AI生成,仅作参考,最终功能和计费标准以官方为准。

一、产品概述

Anime.js 是 Julian Garnier 开发的一款快速、多用途且轻量级的 JavaScript 动画引擎,通过简洁的 API 实现对 CSS 属性、SVG、DOM 属性和 JavaScript 对象的动画控制。

ScreenShot_2026-07-08_102155_862.png

ScreenShot_2026-07-08_102238_441.png

二、产品特色

  • 模块化架构:采用 ESM-first 设计,支持 tree-shaking,仅需导入所需功能。完整库压缩后约 10KB,WAAPI 模块仅约 3KB

  • 动画类型支持:可对 CSS 属性、SVG 属性、DOM 元素属性及纯 JavaScript 对象进行动画操作

  • Timeline 时间线系统:支持复杂动画序列编排,提供标签引用、相对位置、绝对时间等多种定位语法,可同步外部动画

  • Scroll Observer:触发和同步滚动动画,支持进入/离开视口的回调及滚动位置与动画进度的同步

  • SVG 工具集:内置形状变形(morphTo)、路径运动(createMotionPath)、路径绘制(createDrawable)等 SVG 动画辅助功能

  • Draggable 拖拽系统:为 DOM 元素添加拖拽能力,支持物理弹簧效果、边界约束和释放回调

  • Stagger 交错效果:通过内置 stagger 函数创建多元素的级联延迟动画,支持网格布局和起始位置配置

  • Spring 弹簧物理:支持基于弹簧物理的缓动效果,可配置刚度和阻尼参数

  • Scope 响应式作用域:使动画可响应媒体查询,支持自定义根元素和默认参数共享,适用于响应式和组件化开发

  • WAAPI 集成:提供 waapi.animate() 方法,利用浏览器原生 Web Animations API 实现硬件加速动画,同时保留 Anime.js 的简洁 API

  • 动画合成控制:通过 composition 参数控制多个动画对同一目标的交互方式,支持 replace(替换)、blend(混合)、none(独立)三种模式

  • 缓动系统:内置 linear、in/out/inOut 幂函数、cubic-bezier、弹簧物理、steps 等多种缓动函数,支持参数化配置

  • 多格式导入:支持 ES Modules、CommonJS、UMD 全局对象及打包后的 ESM/UMD 文件

三、收费标准

Anime.js 为 100% 免费的开源项目,无任何付费模块、会员制度或增值服务,项目可持续性依赖赞助商支持。

四、常见问题

Q:Anime.js 是否需要付费?

A:不需要。Anime.js 是 100% 免费的开源 JavaScript 库,采用 MIT 许可证发布,无付费层级或功能限制。

Q:Anime.js 的安装方式有哪些?

A:支持多种安装方式。可通过 npm 安装(npm install animejs),从 CDN 直接引入,或从 GitHub 仓库下载源文件。提供 ES Modules、CommonJS、UMD 全局对象及打包后的 ESM/UMD 文件等多种格式。

Q:Anime.js 的打包体积是多少?

A:根据官方数据,完整库体积约 24.50 KB(未压缩),其中核心模块 Timer 5.60 KB、Animation 5.20 KB、Timeline 0.55 KB。WAAPI 模块约 3 KB(gzip),JavaScript 版本约 10 KB(gzip)。

Q:Anime.js v4 与 v3 的主要区别是什么?

A:v4 是一次完整重写,主要变化包括:模块化 ESM-first API 支持 tree-shaking;新增 Draggable、Scope、Scroll Observer 等模块;引入 composition 动画合成参数;新增可拖拽、弹簧物理、SVG 工具集等特性;API 命名和参数结构有所调整(如 begin 改为 onBegin,easing 改为 ease)。

Q:何时应使用 WAAPI 模式而非标准 animate()?

A:当需要硬件加速、页面加载时间敏感(WAAPI 体积更小)或需要动画化 JS 版本无法处理的复杂 CSS 值时,优先使用 waapi.animate()。当需要动画化大量目标(超过 500 个)、JS 对象/Canvas/WebGL,或需要复杂时间线和回调控制时,应使用标准 animate()。

Q:Anime.js 支持哪些浏览器?

A:v4 版本面向现代浏览器设计,支持 Chrome、Edge、Firefox、Safari、Opera 的最新版本。由于使用 ES Modules 和现代 JavaScript 特性,如需支持旧版浏览器可能需要进行代码转译。

Q:Anime.js 是否提供 TypeScript 支持?

A:是。Anime.js v4 包含完整的 TypeScript 类型定义,开发者可获得类型提示和检查支持。