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

瀏覽器相容性

另見