UNPKG

4.03 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.backIn = backIn;
7exports.backInOut = backInOut;
8exports.backOut = backOut;
9exports.bounceIn = bounceIn;
10exports.bounceInOut = bounceInOut;
11exports.bounceOut = bounceOut;
12exports.cubicIn = cubicIn;
13exports.cubicInOut = cubicInOut;
14exports.cubicOut = cubicOut;
15exports.elasticIn = elasticIn;
16exports.elasticInOut = elasticInOut;
17exports.elasticOut = elasticOut;
18exports.exponentialIn = exponentialIn;
19exports.exponentialOut = exponentialOut;
20exports.linear = linear;
21exports.quadraticIn = quadraticIn;
22exports.quadraticInOut = quadraticInOut;
23exports.quadraticOut = quadraticOut;
24exports.quarticIn = quarticIn;
25exports.quarticInOut = quarticInOut;
26exports.quarticOut = quarticOut;
27exports.quinticIn = quinticIn;
28exports.quinticInOut = quinticInOut;
29exports.quinticOut = quinticOut;
30
31// https://github.com/tweenjs/tween.js
32function linear(k) {
33 return k;
34}
35
36function quadraticIn(k) {
37 return k * k;
38}
39
40function quadraticOut(k) {
41 return k * (2 - k);
42}
43
44function quadraticInOut(k) {
45 if ((k *= 2) < 1) {
46 return 0.5 * k * k;
47 }
48
49 return -0.5 * (--k * (k - 2) - 1);
50}
51
52function cubicIn(k) {
53 return k * k * k;
54}
55
56function cubicOut(k) {
57 return --k * k * k + 1;
58}
59
60function cubicInOut(k) {
61 if ((k *= 2) < 1) {
62 return 0.5 * k * k * k;
63 }
64
65 return 0.5 * ((k -= 2) * k * k + 2);
66}
67
68function quarticIn(k) {
69 return k * k * k * k;
70}
71
72function quarticOut(k) {
73 return 1 - k * k * k * k;
74}
75
76function quarticInOut(k) {
77 if ((k *= 2) < 1) {
78 return 0.5 * k * k * k * k;
79 }
80
81 return -0.5 * ((k -= 2) * k * k * k - 2);
82}
83
84function quinticIn(k) {
85 return k * k * k * k * k;
86}
87
88function quinticOut(k) {
89 return --k * k * k * k * k + 1;
90}
91
92function quinticInOut(k) {
93 if ((k *= 2) < 1) {
94 return 0.5 * k * k * k * k * k;
95 }
96
97 return 0.5 * ((k -= 2) * k * k * k * k + 2);
98}
99
100function exponentialIn(k) {
101 return k === 0 ? 0 : Math.pow(1024, k - 1);
102}
103
104function exponentialOut(k) {
105 return k === 1 ? 1 : 1 - Math.pow(2, -10 * k);
106}
107
108function elasticIn(k) {
109 var s;
110 var a = 0.1;
111 var p = 0.4;
112 if (k === 0) return 0;
113 if (k === 1) return 1;
114
115 if (!p) {
116 p = 0.3;
117 }
118
119 if (!a || a < 1) {
120 a = 1;
121 s = p / 4;
122 } else {
123 s = p / (2 * Math.PI) * Math.asin(1 / a);
124 }
125
126 return -(a * Math.pow(2, 10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p));
127}
128
129function elasticOut(k) {
130 var s;
131 var a = 0.1;
132 var p = 0.4;
133 if (k === 0) return 0;
134 if (k === 1) return 1;
135
136 if (!p) {
137 p = 0.3;
138 }
139
140 if (!a || a < 1) {
141 a = 1;
142 s = p / 4;
143 } else {
144 s = p / (2 * Math.PI) * Math.asin(1 / a);
145 }
146
147 return a * Math.pow(2, -10 * k) * Math.sin((k - s) * (2 * Math.PI) / p) + 1;
148}
149
150function elasticInOut(k) {
151 var s;
152 var a = 0.1;
153 var p = 0.4;
154 if (k === 0) return 0;
155 if (k === 1) return 1;
156
157 if (!p) {
158 p = 0.3;
159 }
160
161 if (!a || a < 1) {
162 a = 1;
163 s = p / 4;
164 } else {
165 s = p / (2 * Math.PI) * Math.asin(1 / a);
166 }
167
168 if ((k *= 2) < 1) {
169 return -0.5 * (a * Math.pow(2, 10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p));
170 }
171
172 return a * Math.pow(2, -10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p) * 0.5 + 1;
173}
174
175function backIn(k) {
176 var s = 1.70158;
177 return k * k * ((s + 1) * k - s);
178}
179
180function backOut(k) {
181 var s = 1.70158;
182 return (k = k - 1) * k * ((s + 1) * k + s) + 1;
183}
184
185function backInOut(k) {
186 var s = 1.70158 * 1.525;
187
188 if ((k *= 2) < 1) {
189 return 0.5 * (k * k * ((s + 1) * k - s));
190 }
191
192 return 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2);
193}
194
195function bounceIn(k) {
196 return 1 - bounceOut(1 - k);
197}
198
199function bounceOut(k) {
200 if ((k /= 1) < 1 / 2.75) {
201 return 7.5625 * k * k;
202 } else if (k < 2 / 2.75) {
203 return 7.5625 * (k -= 1.5 / 2.75) * k + 0.75;
204 } else if (k < 2.5 / 2.75) {
205 return 7.5625 * (k -= 2.25 / 2.75) * k + 0.9375;
206 }
207
208 return 7.5625 * (k -= 2.625 / 2.75) * k + 0.984375;
209}
210
211function bounceInOut(k) {
212 if (k < 0.5) {
213 return bounceIn(k * 2) * 0.5;
214 }
215
216 return bounceOut(k * 2 - 1) * 0.5 + 0.5;
217}
\No newline at end of file