【ウェブアニメーションズエーピーアイ】

Web Animations API とは?

公開:
💡 CSSアニメーションをJavaScriptで自在に操る、アニメーション制御のリモコン
📌 このページのポイント
Web Animations API — JSからアニメーションを制御 CSSアニメーション 宣言的 / 静的な定義 ホバーやローディングに最適 動的制御は苦手 Web Animations API プログラム的 / 動的な制御 同じエンジンで高パフォーマンス 再生・停止・逆再生が自在 ブラウザのアニメーションエンジン(コンポジタースレッド) Animationオブジェクトの制御メソッド play() pause() reverse() finish() ...
Web Animations APIのイメージ
ひよこ ひよこ
CSSアニメーションがあるのに、わざわざJavaScriptでアニメーションを作る必要あるの?
ペンギン先生 ペンギン先生
CSSアニメーションは宣言的で簡単だけど、「ユーザーのドラッグに追従する」とか「途中で一時停止して逆再生する」みたいな動的な制御は苦手なんだ。Web Animations APIならそういったインタラクティブな制御がJavaScriptで簡単にできるよ
ひよこ ひよこ
element.animate()ってどう使うの?
ペンギン先生 ペンギン先生
element.animate([{ opacity: 0 }, { opacity: 1 }], { duration: 500 })のように、キーフレームとオプションを渡すだけだよ。戻り値のAnimationオブジェクトでplay()、pause()、reverse()、finish()などが呼べるんだ
ひよこ ひよこ
jQueryのanimate()やGSAPとはどう違うの?
ペンギン先生 ペンギン先生
jQueryやGSAPはJavaScriptでスタイルを毎フレーム書き換えるけど、Web Animations APIブラウザのアニメーションエンジンに処理を任せるからパフォーマンスが段違いなんだ。CSSアニメーションと同じくコンポジタースレッドで動作するから、メインスレッドが重くてもなめらかに動くよ
ひよこ ひよこ
CSSアニメーションとの使い分けはどうすればいい?
ペンギン先生 ペンギン先生
単純なホバーエフェクトやローディングアニメーションはCSSで十分。ユーザー操作に応じた動的な制御、複数アニメーションの同期、完了を待ってから次の処理を実行するといったケースではWeb Animations APIが向いているよ。getAnimations()で要素にかかっているアニメーションを取得・制御できるのも便利だね
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
Web Animations API」って出てきたら「JavaScriptCSSアニメーションを動的に操れるAPI」と思えればだいたいOK!
📖 おまけ:英語の意味
「Web Animations API」 = Webアニメーション API
💬 CSSアニメーション・CSSトランジション・JavaScriptアニメーションを統一的に扱える基盤APIとして設計されたものだよ
← 用語集にもどる