【えすぶいじーあにめーしょん】
SVGアニメーション とは?
最終更新:
💡 SVGの図形に動きを付ける
SVGの図形や属性などを時間とともに変化させて、動きを表す技術。SVGのアニメーション要素、CSS、JavaScriptなどを使い、表示方法とブラウザーの対応に合わせて実装する。
📌 このページのポイント
- SVGのパスや図形の属性、CSSプロパティなどを変化させる
- SVGアニメーション要素、CSS、JavaScriptなどの方法がある
- 画像として埋め込む場合とインラインSVGでは、使える機能が異なる
- 滑らかさや容量は内容・端末・実装次第。性能を実測して確認する
CSSアニメーションと何が違うの?
どうやって動かすの?
SVG内のanimateなどのアニメーション要素、CSSのkeyframesやtransition、JavaScriptによるDOM操作やWeb Animations APIなどがあるよ。動かしたい属性や操作への反応、ブラウザーの対応で方法を選ぶ。必ず特定のライブラリが必要というわけではないんだ
imgで表示したSVGも、ページのJavaScriptから動かせる?
画像として読み込んだSVGの内部は、インラインSVGと同じようには扱えないよ。画像内のスクリプトやクリック操作は使えないけれど、宣言的な時間ベースの動きは可能な場合がある。ページ側から図形を直接操作したいなら、インラインで置く方法などを検討しよう
SVGなら必ず軽くて滑らかなの?
図形や効果が複雑なら負荷は増えるよ。transformやopacityはブラウザーが最適化しやすいけれど、60fpsを保証しない。will-changeも無条件に付けると別の性能問題を招くことがあるので、実測して必要な箇所へ使おう
動きを付けるとき、利用する人への配慮は?
動きでほかの内容を読みづらくしないようにしよう。WCAGでは、自動で始まり5秒を超えて続き、ほかの内容と並んで表示される動く情報に、停止などの仕組みを求める基準があるよ。必須の動きには例外もある。SVG形式だけで使いやすさが保証されるわけではないんだ
まとめ:ざっくりこれだけ覚えればOK!
「SVGアニメーション」って出てきたら「ベクター画像をWebで動かす技術」と思えればだいたいOK!
📖 おまけ:英語の意味
「SVG Animation」 = SVGアニメーション
💬 Scalable Vector Graphics(拡大縮小可能なベクター画像)にアニメーションを加えるよ