animate()
介绍
使用 Element 的 animate() 方法来给 UI 元件设置 CSS Animation 动画。
- 使用 getElementById API, 根据
id查找需要做动画的Element对象。 - 调用
Element对象上的animateAPI 实现动画。
语法
参数
keyframes
有两种不同的格式:
- 一个由多个关键帧的属性和值组成的对象所构成的数组。
- 一个 key 是 offset,value 是关键帧组成的对象。
- 你也可以给关键帧指定一个 timing-function。
options
包含一个或多个属性的对象:
备注
- 若没有指定
name,每次生成一个自增的 unique id 作为name。 - 相同
name的动画无法连续多次触发。
返回值
返回 Animation 对象。
Animation 对象上的方法:
示例
通过 getElementById() 调用
Note
- 每次调用
lynx.getElementById("test").animate都会生成一个新的Animation对象,同时后面创建的动画会覆盖前面创建的动画。 - 如果想重启一个同样的动画,需要重新调用
lynx.getElementById("test").animate来创建一个新的Animation对象。。
通过 createSelectorQuery() 调用 3.4
在 Lynx 3.4 版本后,animate() 可以通过 createSelectorQuery() 来调用。
该方式属于实验性功能。
多动画 Multiple animate 3.4
在 Lynx 3.4 版本后,可以通过 createSelectorQuery() 来在一个节点上同时启动多个动画。
该方式属于实验性功能。
动画事件
Animate API 的事件和 CSS Animation 动画事件相同。
其他信息
Tip
-
Animate API 与 CSS Animation 会互相覆盖,后生效的那一方会覆盖前者。
-
Animate API 不生效,可能是 getElementById 未能选中节点:
- 可能是 ID 选择器不正确
- 可能是 ID 选择器的值依赖复杂 JS 表达式,导致 ID 选择器的值无法在首屏得到,此时若 getElementById 的时机过早 (如在 ComponentDidMount),则可能找不到节点
参见
兼容性
LCD tables only load in the browser