もとは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') |