Animation

Baseline 已广泛支持

此功能已经成熟,并可在许多设备和浏览器版本上使用。自 ⁨2020 年 3 月⁩起,它已在各浏览器中推出。

Web Animations API 中的 Animation 接口代表一个单独的动画播放器,并为动画节点或源提供播放控件和时间线。

EventTarget Animation

构造函数

Animation()

创建一个新的 Animation 对象实例。

实例属性

Animation.currentTime

动画的当前时间值,以毫秒为单位,无论是正在运行还是已暂停。如果动画没有 timeline,处于非活动状态或尚未播放,其值为 null

Animation.effect

获取和设置与此动画关联的 AnimationEffect。这通常是一个 KeyframeEffect 对象。

Animation.finished 只读

返回此动画当前的完成 Promise。

Animation.id

获取和设置用于标识动画的 String

Animation.overallProgress 只读

返回一个介于 01 之间的数字,表示动画在其完成状态下的总体进度。

Animation.pending 只读

指示动画当前是否正在等待异步操作,例如发起播放或暂停正在运行的动画。

Animation.playState 只读

返回一个描述动画播放状态的枚举值。

Animation.playbackRate

获取或设置动画的播放速率。

Animation.ready 只读

返回此动画当前的就绪 Promise。

Animation.replaceState 只读

指示动画是活动的、在被另一个动画替换后被自动移除,还是通过调用 Animation.persist() 被显式保留。

Animation.startTime

获取或设置动画播放应开始的预定时间。

Animation.timeline

获取或设置与此动画关联的 timeline

实例方法

Animation.cancel()

清除由此动画引起的 keyframeEffects 并中止其播放。

Animation.commitStyles()

将动画的当前样式状态提交给正在动画的元素,即使该动画已被移除。它将导致当前样式状态以 style 属性中属性的形式写入正在动画的元素。

Animation.finish()

根据动画是正在播放还是正在反向播放,将动画定位到其一端。

Animation.pause()

暂停动画的播放。

Animation.persist()

显式保留一个动画,防止它在另一个动画替换它时被 自动移除

Animation.play()

开始或恢复动画的播放,或者在动画之前完成的情况下重新开始动画。

Animation.reverse()

反转播放方向,停在动画的开头。如果动画已完成或未播放,它将从末尾播放到开头。

Animation.updatePlaybackRate()

在首次同步其播放位置后设置动画的速度。

事件

cancel

当调用 Animation.cancel() 方法或动画从另一个状态进入 "idle" 播放状态时触发。

finish

动画播放完成时触发。

remove

动画被浏览器 自动移除 时触发。

可访问性考虑

闪烁和动画可能会给患有注意力缺陷多动障碍 (ADHD) 等认知问题的人带来困扰。此外,某些类型的运动可能会触发前庭障碍、癫痫和偏头痛以及瞳孔敏感性。

考虑提供暂停或禁用动画的机制,并使用 Reduced Motion Media Query(或等效的 用户代理客户端提示 Sec-CH-Prefers-Reduced-Motion)为已表示偏好无动画体验的用户创建互补体验。

规范

规范
Web 动画
# the-animation-interface

浏览器兼容性

另见