Web Animations APIとは?— CSSアニメーションとの違いと使い方

Webサイトにアニメーションを追加する方法はいくつかありますが、その中でも Web Animations API (WAAPI) は強力な選択肢の一つです。
CSSアニメーションや 「requestAnimationFrame」 に比べ、JavaScriptで簡単にアニメーションを制御できるのが特徴です。

Web Animations APIとは?

Web Animations API は、JavaScriptで要素のアニメーションを制御できるAPIです。
CSSアニメーションのように「@keyframes」を使わずに、プログラム的にアニメーションを作成・操作できます。

基本的な使い方

Web Animations API は、以下のようにコードを書いてアニメーションを実行します。

動かす要素.animate(動かす内容,再生時間);

<例>

const box = document.querySelector(".box");

box.animate(
  [
    { transform: "translateX(0px)" },
    { transform: "translateX(100px)" }
  ],
  {
    duration: 1000, // 1秒
    iterations: Infinity, // 無限ループ
    easing: "ease-in-out" // イージング
  }
);

注意点とコードの説明

querySelectorAll複数の要素を取得する ため、そのまま「box.animate() 」を呼び出すとエラーになります。

  1. .box クラスを持つ要素が、初期位置(translateX(0px))から開始する
  2. 1秒かけて translateX(100px) まで移動する
  3. ease-in-out のイージングを適用(動きが滑らかになる)
  4. iterations: Infinity により、アニメーションが無限に繰り返される

Web Animations API の特徴と利点

  • JavaScriptで完全に制御可能
  • 途中でアニメーションを停止・再開できる
  • CSSアニメーションよりも高性能な場合がある
  • 「requestAnimationFrame」よりも簡単

例えば、アニメーションの途中で停止する場合は以下のように書けます。

const animation = box.animate([~~~], {~~~});

// 2秒後にアニメーションを停止
setTimeout(() => {
  animation.pause();
}, 2000);  //2000ミリ秒

CSSアニメーションとの違い

項目Web Animations APICSSアニメーション
記述方法JavaScriptCSS (@keyframes)
動的な制御可能不可(制限あり)
パフォーマンス高い(最適化される)高い(ブラウザ最適化)
再生・停止・逆再生可能不可(手動で調整必要)

まとめ

Web Animations API は、CSSアニメーションでは難しい 動的な制御 が可能です。特に、途中停止・再開・逆再生が必要な場面 では、CSSよりも柔軟に対応できます。
アニメーションを細かくコントロールしたい場合は、ぜひWeb Animations APIを試してみてください!

コメント

タイトルとURLをコピーしました