tween.js
githubのreadmeに、
Javascript Tweening Engineとあるとおり、トゥイーンとするライブラリで、DOMオブジェクトのアニメーションが簡単に作れるっぽい。以前、three.jsでカレンダーを3Dにしてみた。で作ったページでも使っているけど、その時はtween.jsで何ができるか詳しく調べていなかったので、今回tween.jsに注目してちょっと試してみた。
DOM要素を順番に落下させる。
↓のようなサンプルを作ってみた。
ページ上にいくつかある青いのは<span>要素なんだけど、これを並べておいて、左から順番に落下させるというアニメーション。 実際に動くページは、こちら。ソース
htmlは(bootsrap2.3を使ってる)、
で、横並びの数字バッヂを作った。010203:
Javascriptは、
function init() { var boxes = $('box'); for (var i = 0; i < boxes.length; i++) { var box = $(boxes[i]); box.css('position', 'relative'); var elem = { y: 0, box: box }; var clallback = function () { this.box.css('top', this.y + 'px'); }; var tween = new TWEEN.Tween(elem) .to({ y: 400 }, 2000) // 2000msかけてyを400まで持っていく。 .easing(TWEEN.Easing.Bounce.Out) // Bounce.Outを使ってバウンドさせる。 .onUpdate(callback) // アップデート時のコールバックを指定。 .delay(1000 + i * 200) // となりの要素よりも200ms遅れて動き出す。 .start(); } }; function animate() { requestAnimationFrame(animate); TWEEN.update(); }; $(function() { init(); animate(); });のようにした。あ、jQueryも使ってます。対象の動かし方を決めるTWEEN.Easingにはたくさん種類があって、今ひとつどれがどれなのか把握できていないので、別の機会に全部試してみようと思ってる。あと、TWEEN.Tweenはチェーンが組めるので、いろいろなアニメーションをつなげることで、結構複雑なアニメーションが実現できる。チェーンを使ったサンプルは、本家の例にもある。
0 件のコメント:
コメントを投稿