-var\r
- ease = {\r
- 'quadratic' : {\r
- style: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)',\r
- fn: function (k) {\r
- return k * ( 2 - k );\r
- }\r
- },\r
- 'circular' : {\r
- style: 'cubic-bezier(0.1, 0.57, 0.1, 1)', // Not properly "circular" but this looks better, it should be (0.075, 0.82, 0.165, 1)\r
- fn: function (k) {\r
- return Math.sqrt( 1 - ( --k * k ) );\r
- }\r
- },\r
- 'back' : {\r
- style: 'cubic-bezier(0.175, 0.885, 0.32, 1.275)',\r
- fn: function (k) {\r
- var b = 4;\r
- return ( k = k - 1 ) * k * ( ( b + 1 ) * k + b ) + 1;\r
- }\r
- },\r
- 'bounce' : {\r
- style: '',\r
- fn: function (k) {\r
- if ( ( k /= 1 ) < ( 1 / 2.75 ) ) {\r
- return 7.5625 * k * k;\r
- } else if ( k < ( 2 / 2.75 ) ) {\r
- return 7.5625 * ( k -= ( 1.5 / 2.75 ) ) * k + 0.75;\r
- } else if ( k < ( 2.5 / 2.75 ) ) {\r
- return 7.5625 * ( k -= ( 2.25 / 2.75 ) ) * k + 0.9375;\r
- } else {\r
- return 7.5625 * ( k -= ( 2.625 / 2.75 ) ) * k + 0.984375;\r
- }\r
- }\r
- },\r
- 'elastic' : {\r
- style: '',\r
- fn: function (k) {\r
- var f = 0.22,\r
- e = 0.4;\r
-\r
- if ( k === 0 ) { return 0; }\r
- if ( k == 1 ) { return 1; }\r
-\r
- return ( e * Math.pow( 2, - 10 * k ) * Math.sin( ( k - f / 4 ) * ( 2 * Math.PI ) / f ) + 1 );\r
- }\r
- }\r
- };\r
-\r
-// お約束\r
-// transform や transition animation は スタイルシートに書かない\r
-\r
-// 新規アニメーションが追加された場合、\r
-// tree が dirty なら AFTER_COMMIT を待つ\r
-// 1) xnode の既存アニメーションとの親子関係の調査\r
-// 親なら -> 既存アニメーションの GPU レイヤー解除\r
-// 子なら -> GPU レイヤーを設定しない\r
-// 2) 目標座標のセット\r
-// 3) アニメーション完了後も GPU レイヤーはしばらく解除しない スクロール等の連続アニメーション時に GPU 転送時間で画面ががたつくから\r
-// アニメ中の remove\r
-\r
-var X_Node_ANIMATIONS = [],\r
- X_Node_Anime_reserved = false,\r
- X_Node_Anime_updateTimerID = 0,\r
- X_Node_Anime_needsDetection = false,\r
- X_Node_Anime_onTransition = false,\r