RAPHAELIST

Raphael.jsは日本語ドキュメントが少ないので、初心者には敷居が高いのを何とかするブログ

【Raphael.js】Raphaelエレメントをアニメーションする

animate関数

Raphael.jsの中で最も光り輝いている部分があるとすればずばりコレ!アニメーション機能です。この関数を使えば、様々なアニメーションが可能になります。

使い方はattr関数と非常によく似ています。animate関数はアニメーションさせる属性に加え、アニメーションが完了するまでの秒数やアニメーションタイプを指定する事で様々なアニメーションが可能になります。

 

実行結果

FullScreen http://jsfiddle.net/nekosmash/n9NdW/embedded/result/

 

Raphael最強伝説

このSVGのアニメーション処理は、モダンブラウザの中には対応しているものもあります。ですが、IE8以前のものはもちろんSVGに対応していませんし、あのIE9もSVGは対応していますがSVGのアニメーションには対応していません(oh...)。

その違いを見事に吸収してくれるのがRaphael.jsの素晴らしいところです。HTML5でのcanvasでもアニメーションは出来るんですが、IE7などに対応させる為にはとてつもない労力が必要になります。何故ならcanvasライブラリの多くがIE8以前に対応していませんし、googleが提供しているexcanvas.jsを使っても出来る事と言えばせいぜいcanvas上に図を描くくらい。アニメーションはできません。

というわけでアニメーションというジャンルだけならIE8以前にもきちんと対応しているRaphael.jsが最強伝説です!

 

解説

クリックすると、円が徐々に小さくなっていきます。ここでは1秒間の間にリニアなアニメーションを実行しています。

Element.animate({parameter},timespan,easing,callback);

  • Element: アニメーションさせるRaphaelエレメント
  • parameter: アニメーションさせる属性を指定するパラメータ配列
  • (省略可能)timespan: アニメーションにかける時間。省略した場合、一瞬でアニメーション後の見た目に変化する。
  • (省略可能)easing: アニメーションの仕方を指定する。省略した場合は均一なアニメーションとなる。
  • (省略可能)callback: アニメーション後に呼び出されるコールバック関数
  • 返り値: アニメーションさせるRaphaelエレメント