2 * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
4 * Uses the built in easing capabilities added In jQuery 1.1
5 * to offer multiple easing options
7 * TERMS OF USE - jQuery Easing
9 * Open source under the BSD License.
11 * Copyright © 2008 George McGinley Smith
12 * All rights reserved.
14 * Redistribution and use in source and binary forms, with or without modification,
15 * are permitted provided that the following conditions are met:
17 * Redistributions of source code must retain the above copyright notice, this list of
18 * conditions and the following disclaimer.
19 * Redistributions in binary form must reproduce the above copyright notice, this list
20 * of conditions and the following disclaimer in the documentation and/or other materials
21 * provided with the distribution.
23 * Neither the name of the author nor the names of contributors may be used to endorse
24 * or promote products derived from this software without specific prior written permission.
26 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
27 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
28 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
29 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
30 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
31 * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
32 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
33 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
34 * OF THE POSSIBILITY OF SUCH DAMAGE.
38 // t: current time, b: begInnIng value, c: change In value, d: duration
39 jQuery
.easing
['jswing'] = jQuery
.easing
['swing'];
41 jQuery
.extend( jQuery
.easing
,
44 swing: function (x
, t
, b
, c
, d
) {
45 //alert(jQuery.easing.default);
46 return jQuery
.easing
[jQuery
.easing
.def
](x
, t
, b
, c
, d
);
48 easeInQuad: function (x
, t
, b
, c
, d
) {
49 return c
*(t
/=d
)*t
+ b
;
51 easeOutQuad: function (x
, t
, b
, c
, d
) {
52 return -c
*(t
/=d
)*(t
-2) + b
;
54 easeInOutQuad: function (x
, t
, b
, c
, d
) {
55 if ((t
/=d/2) < 1) return c
/2*t
*t
+ b
;
56 return -c
/2 * ((--t
)*(t
-2) - 1) + b
;
58 easeInCubic: function (x
, t
, b
, c
, d
) {
59 return c
*(t
/=d
)*t
*t
+ b
;
61 easeOutCubic: function (x
, t
, b
, c
, d
) {
62 return c
*((t
=t
/d
-1)*t
*t
+ 1) + b
;
64 easeInOutCubic: function (x
, t
, b
, c
, d
) {
65 if ((t
/=d/2) < 1) return c
/2*t
*t
*t
+ b
;
66 return c
/2*((t
-=2)*t
*t
+ 2) + b
;
68 easeInQuart: function (x
, t
, b
, c
, d
) {
69 return c
*(t
/=d
)*t
*t
*t
+ b
;
71 easeOutQuart: function (x
, t
, b
, c
, d
) {
72 return -c
* ((t
=t
/d
-1)*t
*t
*t
- 1) + b
;
74 easeInOutQuart: function (x
, t
, b
, c
, d
) {
75 if ((t
/=d/2) < 1) return c
/2*t
*t
*t
*t
+ b
;
76 return -c
/2 * ((t
-=2)*t
*t
*t
- 2) + b
;
78 easeInQuint: function (x
, t
, b
, c
, d
) {
79 return c
*(t
/=d
)*t
*t
*t
*t
+ b
;
81 easeOutQuint: function (x
, t
, b
, c
, d
) {
82 return c
*((t
=t
/d
-1)*t
*t
*t
*t
+ 1) + b
;
84 easeInOutQuint: function (x
, t
, b
, c
, d
) {
85 if ((t
/=d/2) < 1) return c
/2*t
*t
*t
*t
*t
+ b
;
86 return c
/2*((t
-=2)*t
*t
*t
*t
+ 2) + b
;
88 easeInSine: function (x
, t
, b
, c
, d
) {
89 return -c
* Math
.cos(t
/d * (Math.PI/2)) + c
+ b
;
91 easeOutSine: function (x
, t
, b
, c
, d
) {
92 return c
* Math
.sin(t
/d * (Math.PI/2)) + b
;
94 easeInOutSine: function (x
, t
, b
, c
, d
) {
95 return -c
/2 * (Math.cos(Math.PI*t/d) - 1) + b
;
97 easeInExpo: function (x
, t
, b
, c
, d
) {
98 return (t
==0) ? b
: c
* Math
.pow(2, 10 * (t
/d
- 1)) + b
;
100 easeOutExpo: function (x
, t
, b
, c
, d
) {
101 return (t
==d
) ? b
+c
: c
* (-Math
.pow(2, -10 * t
/d
) + 1) + b
;
103 easeInOutExpo: function (x
, t
, b
, c
, d
) {
105 if (t
==d
) return b
+c
;
106 if ((t
/=d/2) < 1) return c
/2 * Math
.pow(2, 10 * (t
- 1)) + b
;
107 return c
/2 * (-Math
.pow(2, -10 * --t
) + 2) + b
;
109 easeInCirc: function (x
, t
, b
, c
, d
) {
110 return -c
* (Math
.sqrt(1 - (t
/=d
)*t
) - 1) + b
;
112 easeOutCirc: function (x
, t
, b
, c
, d
) {
113 return c
* Math
.sqrt(1 - (t
=t
/d
-1)*t
) + b
;
115 easeInOutCirc: function (x
, t
, b
, c
, d
) {
116 if ((t
/=d/2) < 1) return -c
/2 * (Math
.sqrt(1 - t
*t
) - 1) + b
;
117 return c
/2 * (Math
.sqrt(1 - (t
-=2)*t
) + 1) + b
;
119 easeInElastic: function (x
, t
, b
, c
, d
) {
120 var s
=1.70158;var p
=0;var a
=c
;
121 if (t
==0) return b
; if ((t
/=d
)==1) return b
+c
; if (!p
) p
=d
*.3;
122 if (a
< Math
.abs(c
)) { a
=c
; var s
=p
/4; }
123 else var s
= p
/(2*Math.PI) * Math.asin (c/a);
124 return -(a
*Math
.pow(2,10*(t
-=1)) * Math
.sin( (t
*d
-s
)*(2*Math
.PI
)/p
)) + b
;
126 easeOutElastic: function (x
, t
, b
, c
, d
) {
127 var s
=1.70158;var p
=0;var a
=c
;
128 if (t
==0) return b
; if ((t
/=d
)==1) return b
+c
; if (!p
) p
=d
*.3;
129 if (a
< Math
.abs(c
)) { a
=c
; var s
=p
/4; }
130 else var s
= p
/(2*Math.PI) * Math.asin (c/a);
131 return a
*Math
.pow(2,-10*t
) * Math
.sin( (t
*d
-s
)*(2*Math
.PI
)/p
) + c
+ b
;
133 easeInOutElastic: function (x
, t
, b
, c
, d
) {
134 var s
=1.70158;var p
=0;var a
=c
;
135 if (t
==0) return b
; if ((t
/=d/2)==2) return b
+c
; if (!p
) p
=d
*(.3*1.5);
136 if (a
< Math
.abs(c
)) { a
=c
; var s
=p
/4; }
137 else var s
= p
/(2*Math.PI) * Math.asin (c/a);
138 if (t
< 1) return -.5*(a
*Math
.pow(2,10*(t
-=1)) * Math
.sin( (t
*d
-s
)*(2*Math
.PI
)/p
)) + b
;
139 return a
*Math
.pow(2,-10*(t
-=1)) * Math
.sin( (t
*d
-s
)*(2*Math
.PI
)/p
)*.5 + c
+ b
;
141 easeInBack: function (x
, t
, b
, c
, d
, s
) {
142 if (s
== undefined) s
= 1.70158;
143 return c
*(t
/=d
)*t
*((s
+1)*t
- s
) + b
;
145 easeOutBack: function (x
, t
, b
, c
, d
, s
) {
146 if (s
== undefined) s
= 1.70158;
147 return c
*((t
=t
/d
-1)*t
*((s
+1)*t
+ s
) + 1) + b
;
149 easeInOutBack: function (x
, t
, b
, c
, d
, s
) {
150 if (s
== undefined) s
= 1.70158;
151 if ((t
/=d/2) < 1) return c
/2*(t
*t
*(((s
*=(1.525))+1)*t
- s
)) + b
;
152 return c
/2*((t
-=2)*t
*(((s
*=(1.525))+1)*t
+ s
) + 2) + b
;
154 easeInBounce: function (x
, t
, b
, c
, d
) {
155 return c
- jQuery
.easing
.easeOutBounce (x
, d
-t
, 0, c
, d
) + b
;
157 easeOutBounce: function (x
, t
, b
, c
, d
) {
158 if ((t
/=d) < (1/2.75)) {
159 return c
*(7.5625*t
*t
) + b
;
160 } else if (t
< (2/2.75)) {
161 return c
*(7.5625*(t
-=(1.5/2.75))*t
+ .75) + b
;
162 } else if (t
< (2.5/2.75)) {
163 return c
*(7.5625*(t
-=(2.25/2.75))*t
+ .9375) + b
;
165 return c
*(7.5625*(t
-=(2.625/2.75))*t
+ .984375) + b
;
168 easeInOutBounce: function (x
, t
, b
, c
, d
) {
169 if (t
< d
/2) return jQuery
.easing
.easeInBounce (x
, t
*2, 0, c
, d
) * .5 + b
;
170 return jQuery
.easing
.easeOutBounce (x
, t
*2-d
, 0, c
, d
) * .5 + c
*.5 + b
;
176 * TERMS OF USE - EASING EQUATIONS
178 * Open source under the BSD License.
180 * Copyright © 2001 Robert Penner
181 * All rights reserved.
183 * Redistribution and use in source and binary forms, with or without modification,
184 * are permitted provided that the following conditions are met:
186 * Redistributions of source code must retain the above copyright notice, this list of
187 * conditions and the following disclaimer.
188 * Redistributions in binary form must reproduce the above copyright notice, this list
189 * of conditions and the following disclaimer in the documentation and/or other materials
190 * provided with the distribution.
192 * Neither the name of the author nor the names of contributors may be used to endorse
193 * or promote products derived from this software without specific prior written permission.
195 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
196 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
197 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
198 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
199 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
200 * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
201 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
202 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
203 * OF THE POSSIBILITY OF SUCH DAMAGE.