もとはjQueryでHTML要素をアニメーションをさせていたのだけど一時停止・復帰をさせたかったので別のアニメーション用ライブラリを探したところ、TweenJSが対応しているので使ってみた。 そこでスケールアニメーションをさせるプラグインを作ってみた。
TweenJS用プラグインの作り方
TweenJSはEaselJSと組み合わせて、キャンバス上で表示させる要素をトゥイーンさせるという使い方が一般的だと思うが、CSSPluginを使うとでHTMLの要素に対してトゥイーンをかけることができて、位置の移動、サイズの変更、透明度の変更ができる。
で拡大・縮小させたかったので、CSSのtransform
のscale
をいじるプラグインを作成してみた。
TweenJSのinstallPluginのドキュメントを見ても、「CSSPluginを見ろ」というだけであまり情報がない。
console.log
とか差し込んでどういう具合に呼び出されるか探ったところ、
init
で初期値を返すtween
のvalue
に補間された値が渡ってくるので、tween.target
の値を更新してやるstep
は?謎
という具合に実装すればよいっぽい。
スケールプラグイン
上記のことを元にして、CSSのtransfrom
のscale
をいじるプラグインを作ってみた:
var CssTransformScalePlugin = (function() { |
init
でstyle
のtransform
からscale
の初期値を取り出す- 本当ならxとyで別々のスケールを指定できるが、TweenJSで複数の値を補間してくれるのかわからなかったので、xy共通とする
tween
でtransform
のscale
部分を書き換える- アップデート毎に正規表現使うとか、富豪的…!
- 戻り値
IGNORE
は?謎
使用例
installPluginに扱うプロパティ名を指定してやると、TweenJSの枠組みで使えるようになる:
// プラグインのインストール |
使用してみる:
var text = document.getElementById('text') |