Easing関数についてのメモ
// 一般的なスタイル function linear(t, b, c, d) { return c * t / d + b; } // jQueryスタイル function linear(x, t, b, c, d) { return x; } // x = t / d, b = 0, c = 1 なので x == t/d == c * t / d + b // つまり上も下もやっていることは同じ。
jQueryスタイルのxは非常に便利なので、jQueryがこのパラメータを導入したのも頷ける。
1秒でフェードアウトするアニメーション
動作確認はしていません。
# CoffeeScript FPS = 30 easeInQuad = (x) -> x * x elTarget = document.getElementById "target" initialLife = FPS * 1 # 1[s] life = initialLife # https://gist.github.com/s-shin/9071179 animator = new Animator FPS, (frameCount) -> life-- elTarget.style.opacity = 1 - easeInQuad(life/initialLife) if life <= 0 elTarget.style[k] = v for k, v of {display: "none", opacity: 1} animator.stop() animator.run()
参考
- Robert Penner's Easing Functions
- jquery/src/effects/Tween.js at master · jquery/jquery · GitHub
- JavaScript での easing 関数を使ったトィーンアニメーションの基礎 - #生存戦略 、それは - subtech
- 【jQuery】easing関数を作る at softelメモ
- anything from herejquery.js のアニメーションコードの解読 ( 10 ) 番外編 easing関数解読
- Easing Function 早見表
- jQuery Easing Plugin
- Easings | jQuery UI API Documentation
- Simple Easing Functions in Javascript - see http://greweb.me/2012/02/bezier-curve-based-easing-functions-from-concept-to-implementation/