1+ 'use strict' ;
2+ /**
3+ * t: current time(当前时间);
4+ * b: beginning value(初始值);
5+ * c: change in value(变化量);
6+ * _c: final value (最后值)
7+ * d: duration(持续时间)。
8+ */
9+ var tweenFunctions = {
10+ linear : function ( t , b , _c , d ) {
11+ var c = _c - b ;
12+ return c * t / d + b ;
13+ } ,
14+ easeInQuad : function ( t , b , _c , d ) {
15+ var c = _c - b ;
16+ return c * ( t /= d ) * t + b ;
17+ } ,
18+ easeOutQuad : function ( t , b , _c , d ) {
19+ var c = _c - b ;
20+ return - c * ( t /= d ) * ( t - 2 ) + b ;
21+ } ,
22+ easeInOutQuad : function ( t , b , _c , d ) {
23+ var c = _c - b ;
24+ if ( ( t /= d / 2 ) < 1 ) {
25+ return c / 2 * t * t + b ;
26+ } else {
27+ return - c / 2 * ( ( -- t ) * ( t - 2 ) - 1 ) + b ;
28+ }
29+ } ,
30+ easeInCubic : function ( t , b , _c , d ) {
31+ var c = _c - b ;
32+ return c * ( t /= d ) * t * t + b ;
33+ } ,
34+ easeOutCubic : function ( t , b , _c , d ) {
35+ var c = _c - b ;
36+ return c * ( ( t = t / d - 1 ) * t * t + 1 ) + b ;
37+ } ,
38+ easeInOutCubic : function ( t , b , _c , d ) {
39+ var c = _c - b ;
40+ if ( ( t /= d / 2 ) < 1 ) {
41+ return c / 2 * t * t * t + b ;
42+ } else {
43+ return c / 2 * ( ( t -= 2 ) * t * t + 2 ) + b ;
44+ }
45+ } ,
46+ easeInQuart : function ( t , b , _c , d ) {
47+ var c = _c - b ;
48+ return c * ( t /= d ) * t * t * t + b ;
49+ } ,
50+ easeOutQuart : function ( t , b , _c , d ) {
51+ var c = _c - b ;
52+ return - c * ( ( t = t / d - 1 ) * t * t * t - 1 ) + b ;
53+ } ,
54+ easeInOutQuart : function ( t , b , _c , d ) {
55+ var c = _c - b ;
56+ if ( ( t /= d / 2 ) < 1 ) {
57+ return c / 2 * t * t * t * t + b ;
58+ } else {
59+ return - c / 2 * ( ( t -= 2 ) * t * t * t - 2 ) + b ;
60+ }
61+ } ,
62+ easeInQuint : function ( t , b , _c , d ) {
63+ var c = _c - b ;
64+ return c * ( t /= d ) * t * t * t * t + b ;
65+ } ,
66+ easeOutQuint : function ( t , b , _c , d ) {
67+ var c = _c - b ;
68+ return c * ( ( t = t / d - 1 ) * t * t * t * t + 1 ) + b ;
69+ } ,
70+ easeInOutQuint : function ( t , b , _c , d ) {
71+ var c = _c - b ;
72+ if ( ( t /= d / 2 ) < 1 ) {
73+ return c / 2 * t * t * t * t * t + b ;
74+ } else {
75+ return c / 2 * ( ( t -= 2 ) * t * t * t * t + 2 ) + b ;
76+ }
77+ } ,
78+ easeInSine : function ( t , b , _c , d ) {
79+ var c = _c - b ;
80+ return - c * Math . cos ( t / d * ( Math . PI / 2 ) ) + c + b ;
81+ } ,
82+ easeOutSine : function ( t , b , _c , d ) {
83+ var c = _c - b ;
84+ return c * Math . sin ( t / d * ( Math . PI / 2 ) ) + b ;
85+ } ,
86+ easeInOutSine : function ( t , b , _c , d ) {
87+ var c = _c - b ;
88+ return - c / 2 * ( Math . cos ( Math . PI * t / d ) - 1 ) + b ;
89+ } ,
90+ easeInExpo : function ( t , b , _c , d ) {
91+ var c = _c - b ;
92+ return ( t == 0 ) ? b : c * Math . pow ( 2 , 10 * ( t / d - 1 ) ) + b ;
93+ } ,
94+ easeOutExpo : function ( t , b , _c , d ) {
95+ var c = _c - b ;
96+ return ( t == d ) ? b + c : c * ( - Math . pow ( 2 , - 10 * t / d ) + 1 ) + b ;
97+ } ,
98+ easeInOutExpo : function ( t , b , _c , d ) {
99+ var c = _c - b ;
100+ if ( t === 0 ) {
101+ return b ;
102+ }
103+ if ( t === d ) {
104+ return b + c ;
105+ }
106+ if ( ( t /= d / 2 ) < 1 ) {
107+ return c / 2 * Math . pow ( 2 , 10 * ( t - 1 ) ) + b ;
108+ } else {
109+ return c / 2 * ( - Math . pow ( 2 , - 10 * -- t ) + 2 ) + b ;
110+ }
111+ } ,
112+ easeInCirc : function ( t , b , _c , d ) {
113+ var c = _c - b ;
114+ return - c * ( Math . sqrt ( 1 - ( t /= d ) * t ) - 1 ) + b ;
115+ } ,
116+ easeOutCirc : function ( t , b , _c , d ) {
117+ var c = _c - b ;
118+ return c * Math . sqrt ( 1 - ( t = t / d - 1 ) * t ) + b ;
119+ } ,
120+ easeInOutCirc : function ( t , b , _c , d ) {
121+ var c = _c - b ;
122+ if ( ( t /= d / 2 ) < 1 ) {
123+ return - c / 2 * ( Math . sqrt ( 1 - t * t ) - 1 ) + b ;
124+ } else {
125+ return c / 2 * ( Math . sqrt ( 1 - ( t -= 2 ) * t ) + 1 ) + b ;
126+ }
127+ } ,
128+ easeInElastic : function ( t , b , _c , d ) {
129+ var c = _c - b ;
130+ var a , p , s ;
131+ s = 1.70158 ;
132+ p = 0 ;
133+ a = c ;
134+ if ( t === 0 ) {
135+ return b ;
136+ } else if ( ( t /= d ) === 1 ) {
137+ return b + c ;
138+ }
139+ if ( ! p ) {
140+ p = d * 0.3 ;
141+ }
142+ if ( a < Math . abs ( c ) ) {
143+ a = c ;
144+ s = p / 4 ;
145+ } else {
146+ s = p / ( 2 * Math . PI ) * Math . asin ( c / a ) ;
147+ }
148+ return - ( a * Math . pow ( 2 , 10 * ( t -= 1 ) ) * Math . sin ( ( t * d - s ) * ( 2 * Math . PI ) / p ) ) + b ;
149+ } ,
150+ easeOutElastic : function ( t , b , _c , d ) {
151+ var c = _c - b ;
152+ var a , p , s ;
153+ s = 1.70158 ;
154+ p = 0 ;
155+ a = c ;
156+ if ( t === 0 ) {
157+ return b ;
158+ } else if ( ( t /= d ) === 1 ) {
159+ return b + c ;
160+ }
161+ if ( ! p ) {
162+ p = d * 0.3 ;
163+ }
164+ if ( a < Math . abs ( c ) ) {
165+ a = c ;
166+ s = p / 4 ;
167+ } else {
168+ s = p / ( 2 * Math . PI ) * Math . asin ( c / a ) ;
169+ }
170+ return a * Math . pow ( 2 , - 10 * t ) * Math . sin ( ( t * d - s ) * ( 2 * Math . PI ) / p ) + c + b ;
171+ } ,
172+ easeInOutElastic : function ( t , b , _c , d ) {
173+ var c = _c - b ;
174+ var a , p , s ;
175+ s = 1.70158 ;
176+ p = 0 ;
177+ a = c ;
178+ if ( t === 0 ) {
179+ return b ;
180+ } else if ( ( t /= d / 2 ) === 2 ) {
181+ return b + c ;
182+ }
183+ if ( ! p ) {
184+ p = d * ( 0.3 * 1.5 ) ;
185+ }
186+ if ( a < Math . abs ( c ) ) {
187+ a = c ;
188+ s = p / 4 ;
189+ } else {
190+ s = p / ( 2 * Math . PI ) * Math . asin ( c / a ) ;
191+ }
192+ if ( t < 1 ) {
193+ return - 0.5 * ( a * Math . pow ( 2 , 10 * ( t -= 1 ) ) * Math . sin ( ( t * d - s ) * ( 2 * Math . PI ) / p ) ) + b ;
194+ } else {
195+ return a * Math . pow ( 2 , - 10 * ( t -= 1 ) ) * Math . sin ( ( t * d - s ) * ( 2 * Math . PI ) / p ) * 0.5 + c + b ;
196+ }
197+ } ,
198+ easeInBack : function ( t , b , _c , d , s ) {
199+ var c = _c - b ;
200+ if ( s === void 0 ) {
201+ s = 1.70158 ;
202+ }
203+ return c * ( t /= d ) * t * ( ( s + 1 ) * t - s ) + b ;
204+ } ,
205+ easeOutBack : function ( t , b , _c , d , s ) {
206+ var c = _c - b ;
207+ if ( s === void 0 ) {
208+ s = 1.70158 ;
209+ }
210+ return c * ( ( t = t / d - 1 ) * t * ( ( s + 1 ) * t + s ) + 1 ) + b ;
211+ } ,
212+ easeInOutBack : function ( t , b , _c , d , s ) {
213+ var c = _c - b ;
214+ if ( s === void 0 ) {
215+ s = 1.70158 ;
216+ }
217+ if ( ( t /= d / 2 ) < 1 ) {
218+ return c / 2 * ( t * t * ( ( ( s *= 1.525 ) + 1 ) * t - s ) ) + b ;
219+ } else {
220+ return c / 2 * ( ( t -= 2 ) * t * ( ( ( s *= 1.525 ) + 1 ) * t + s ) + 2 ) + b ;
221+ }
222+ } ,
223+ easeInBounce : function ( t , b , _c , d ) {
224+ var c = _c - b ;
225+ var v ;
226+ v = tweenFunctions . easeOutBounce ( d - t , 0 , c , d ) ;
227+ return c - v + b ;
228+ } ,
229+ easeOutBounce : function ( t , b , _c , d ) {
230+ var c = _c - b ;
231+ if ( ( t /= d ) < 1 / 2.75 ) {
232+ return c * ( 7.5625 * t * t ) + b ;
233+ } else if ( t < 2 / 2.75 ) {
234+ return c * ( 7.5625 * ( t -= 1.5 / 2.75 ) * t + 0.75 ) + b ;
235+ } else if ( t < 2.5 / 2.75 ) {
236+ return c * ( 7.5625 * ( t -= 2.25 / 2.75 ) * t + 0.9375 ) + b ;
237+ } else {
238+ return c * ( 7.5625 * ( t -= 2.625 / 2.75 ) * t + 0.984375 ) + b ;
239+ }
240+ } ,
241+ easeInOutBounce : function ( t , b , _c , d ) {
242+ var c = _c - b ;
243+ var v ;
244+ if ( t < d / 2 ) {
245+ v = tweenFunctions . easeInBounce ( t * 2 , 0 , c , d ) ;
246+ return v * 0.5 + b ;
247+ } else {
248+ v = tweenFunctions . easeOutBounce ( t * 2 - d , 0 , c , d ) ;
249+ return v * 0.5 + c * 0.5 + b ;
250+ }
251+ }
252+ } ;
253+
254+ module . exports = tweenFunctions ;
0 commit comments