菜单

API 参考

相关源文件

本文档提供了 anime.js API 的全面参考,详细介绍了所有可用的函数、参数和方法,用于创建动画。有关 anime.js 及其基本用法的一般信息,请参阅概述基本用法

核心功能

Anime.js V4 使用 ES 模块导入其核心函数。该库导出的两个主要函数是animate()stagger()

animate()

animate()函数是库的核心,用于创建动画。

参数

参数类型描述
targets字符串,元素,NodeList,数组要动画的元素
parameters对象动画参数

返回值

返回一个动画实例,其中包含控制动画的方法。

stagger()

stagger()函数为具有多个目标动画创建交错延迟值

参数

参数类型描述
value数字每个动画之间的时间偏移
options对象(可选) 配置选项

交错选项

选项类型描述
from数字,字符串,对象起始点('first','last','center',索引)
direction字符串交错方向('normal','reverse')
easing (缓动)函数,字符串交错分布的缓动函数
grid数组用于基于网格交错的[列,行]
axis字符串网格交错方向的'x'或'y'

来源:README.md26-46 lib/anime.esm.js1-107

动画参数

animate()函数接受以下参数:

基本参数

参数类型默认描述
duration数字1000动画持续时间(毫秒)
delay数字0动画延迟,单位毫秒
ease字符串,函数'out(2)'缓动函数
loop布尔值,数字false循环次数,或 true 表示无限循环
alternate布尔值false每次循环时交替方向
reversed布尔值false以反方向开始动画
autoplay布尔值true自动开始动画

属性值

属性可以通过各种值类型进行动画

关键帧 (Keyframes)

Anime.js 支持使用两种不同格式的关键帧动画

基于百分比的关键帧

基于持续时间的关键帧

回调函数

回调时间点
onBegin动画开始时调用
onBeforeUpdate每次动画更新前调用
onUpdate每次动画更新时调用
onRender渲染更改后调用
onComplete (完成回调)动画完成时调用
onLoop每次循环迭代后调用
onPause动画暂停时调用

来源:lib/anime.esm.js412-436 lib/anime.esm.js244-251 lib/anime.esm.js219-243

动画控制

每个动画实例都有控制播放的方法

动画属性

属性描述
currentTime动画当前时间,单位毫秒
progress动画进度,从 0 到 1
iterationProgress当前迭代进度,从 0 到 1
iterationCurrentTime迭代内的当前时间
currentIteration当前迭代次数
duration动画总持续时间
iterationDuration单次迭代的持续时间
iterationCount总迭代次数

来源:lib/anime.esm.js765-840

时间轴系统

时间轴系统允许对多个动画进行排序

创建时间轴

时间轴方法

方法描述
add(params, timelineOffset)向时间轴添加动画
play()播放时间轴
pause()暂停时间轴
restart()重新启动时间轴
seek(time)定位到特定时间
progress(progress)定位到特定进度(0-1)
reverse()反转时间轴方向

时间轴偏移

时间轴偏移决定了动画相对于时间轴何时开始

偏移描述
'+=100'在前一个动画结束后 100 毫秒开始
'-=100'在前一个动画结束前 100 毫秒开始
'50%'在时间轴持续时间的 50% 处开始
'0'在时间轴的开头开始
'1000'在时间轴开始后 1000 毫秒开始

来源:types/index.js328-366 lib/anime.esm.js672-701

交错动画

交错创建多个目标之间的顺序延迟

交错配置

网格交错

用于按网格模式排列的元素

来源:README.md35-44 lib/anime.umd.js2401-2450

缓动函数

缓动函数控制动画随时间的变化速率

内置缓动函数

类别函数
正弦easeInSine, easeOutSine, easeInOutSine
QuadeaseInQuad, easeOutQuad, easeInOutQuad
立方easeInCubic, easeOutCubic, easeInOutCubic
QuarteaseInQuart, easeOutQuart, easeInOutQuart
QuinteaseInQuint, easeOutQuint, easeInOutQuint
ExpoeaseInExpo, easeOutExpo, easeInOutExpo
CirceaseInCirc, easeOutCirc, easeInOutCirc
返回easeInBack, easeOutBack, easeInOutBack
弹跳easeInBounce, easeOutBounce, easeInOutBounce
弹性easeInElastic, easeOutElastic, easeInOutElastic

参数化缓动

Anime.js 提供参数化缓动函数

自定义缓动函数

您可以创建自定义缓动函数

来源:lib/anime.esm.js47-53 lib/anime.esm.js427

SVG 动画

Anime.js 提供用于 SVG 动画的专用函数

SVG 形变 (SVG Morphing)

在 SVG 路径之间形变

SVG 绘制 (SVG Drawing)

动画绘制 SVG 路径

运动路径 (Motion Path)

沿 SVG 路径动画元素

来源:lib/anime.umd.js2460-2590 lib/anime.esm.js767-792

CSS 单位和变换属性

Anime.js 支持使用各种单位进行 CSS 属性动画

CSS 单位

  • 像素值:10px, 100px
  • 百分比:50%, 100%
  • 视口单位:10vw, 25vh
  • 角度:45deg, 360deg
  • 圈数:0.5turn, 2turn
  • em/rem:2em, 1.5rem
  • RGB/RGBA:rgb(255, 0, 0), rgba(255, 0, 0, 0.5)
  • 十六进制颜色:#FF0000, #00FF00
  • HSL/HSLA:hsl(0, 100%, 50%), hsla(0, 100%, 50%, 0.5)

CSS 变换属性

变换 (Transform)描述
translateX水平平移
translateY垂直平移
translateZZ 轴平移 (3D)
rotate2D 旋转
rotateX3D X 轴旋转
rotateY3D Y 轴旋转
rotateZ3D Z 轴旋转
scale统一缩放
scaleX水平扩展
scaleY垂直扩展
skew2D 倾斜
perspective3D 透视

Anime.js 还提供常用变换的快捷方式

  • xtranslateX的简写
  • ytranslateY的简写
  • ztranslateZ的简写

来源:lib/anime.esm.js361-385 lib/anime.esm.js767-792 lib/anime.esm.js362-365

JavaScript 对象动画

Anime.js 可以动画 JavaScript 对象属性

此功能对于动画以下内容非常有用

  • Canvas 属性
  • Three.js 对象
  • 图表和数据可视化
  • 游戏状态
  • 任何需要平滑过渡的 JavaScript 值

来源:lib/anime.esm.js899-909 lib/anime.umd.js2301-2320

组合和属性处理

Anime.js 提供在动画期间处理属性组合的选项

组合类型

类型描述
'replace' (替换)(默认) 每个动画替换前一个动画
'none'无组合,值独立动画
'blend'值以加性方式混合

可动画属性

来源:lib/anime.esm.js134-144 lib/anime.esm.js263-295

此全面 API 参考涵盖了 anime.js 库的核心功能。有关基本用法和示例的更多信息,请参阅基本用法示例和演示