Animation: finish() 方法

Baseline 已广泛支持

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

finish() 方法是 Web Animations APIAnimation 接口的一部分,它将当前播放时间设置为与当前播放方向对应的动画的结尾。

也就是说,如果动画正向前播放,则将其播放时间设置为动画序列的长度;如果动画正在反向播放(已调用其 reverse() 方法),则将其播放时间设置为 0。

语法

js
finish()

参数

无。

返回值

无(undefined)。

异常

InvalidState

播放器的播放速率为 0,或者动画的播放速率大于 0 且动画的结束时间为无穷大。

示例

下面的示例演示了如何使用 finish() 方法并捕获 InvalidState 错误。

js
interfaceElement.addEventListener("mousedown", () => {
  try {
    player.finish();
  } catch (e) {
    if (e instanceof InvalidState) {
      console.log("finish() called on paused or finished animation.");
    } else {
      logMyErrors(e); // Pass exception object to error handler
    }
  }
});

下面的示例将完成单个元素上的所有动画,而无论其播放方向如何。

js
elem.getAnimations().forEach((animation) => animation.finish());

规范

规范
Web 动画
# dom-animation-finish

浏览器兼容性

另见