LoginSignup
12
14

More than 3 years have passed since last update.

SVGのアニメーション方法の比較

Last updated at Posted at 2019-10-13
分類 CSS SMIL JavaScript
ストロークアニメーション(書き順)
モーフィングアニメーション ×
単純なアニメーション(プロパティ変更)
パスアニメーション ×

CSSで動かす

メリット

  • JavaScriptによるプログラミングがほとんど不要
  • CSSプロパティ(塗りや線、拡縮・回転・移動等)であれば、手軽にアニメーションが実現できる

デメリット

  • パスの変形やパスに沿った移動はできない(path要素のd属性にアクセスできないため)
  • IE11で動作しない

まとめ

CSSプロパティの変更で対応できるシンプルなアニメーションで、IE 11に対応不要な場合に有効です。

CSSによるSVGアニメーションの記事書きました。

SMILで動かす

アニメーションの種類 使うタグ
属性値の変化 animateタグ
CSSのTransforms系の変形(回転・移動・拡縮など) animatetransformタグ
パスに沿った移動 animatemotionタグ

メリット

  • HTMLコードだけでアニメーションが可能です。
  • プロパティの変更以外にも、モーフィングやパスに沿ったアニメーションが実現できます。

デメリット

  • IE 11とEdgeでは動作しません。

まとめ

スマホサイト用サイトでSVGアニメーションを実装する場合に有効です。

SMILによるSVGアニメーションの記事書きました。

JavaScriptで動かす

JavaScriptからDOMを操作することでアニメーションできます。

メリット

メリット 内容
表現力が高い あらゆるアニメーションが可能(塗りと線の変化、拡縮・回転・移動、パスの変形、パスに沿ったアニメーション等)
CSSプロパティやSMILで実現できたものは、すべて実現できる
対象ブラウザが多い IE 11、Microsoft Edgeを含む主要ブラウザーで動作する

デメリット

  • CSSやSMILに比べると、コードが煩雑になるので難易度が高くなります。

ライブラリ

ライブラリを使用することで、デメリットである実装の難易度を下げることができます。

JavaScriptによるSVGアニメーションの記事書きました。

12
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
14