2 * jQuery EasIng v1.1.2 - http://gsgd.co.uk/sandbox/jquery.easIng.php
4 * Uses the built In easIng capabilities added In jQuery 1.1
5 * to offer multiple easIng options
7 * Copyright (c) 2007 George Smith
8 * Licensed under the MIT License:
9 * http://www.opensource.org/licenses/mit-license.php
12 // t: current time, b: begInnIng value, c: change In value, d: duration
14 jQuery
.extend( jQuery
.easing
,
16 easeInQuad: function (x
, t
, b
, c
, d
) {
17 return c
*(t
/=d
)*t
+ b
;
19 easeOutQuad: function (x
, t
, b
, c
, d
) {
20 return -c
*(t
/=d
)*(t
-2) + b
;
22 easeInOutQuad: function (x
, t
, b
, c
, d
) {
23 if ((t
/=d/2) < 1) return c
/2*t
*t
+ b
;
24 return -c
/2 * ((--t
)*(t
-2) - 1) + b
;
26 easeInCubic: function (x
, t
, b
, c
, d
) {
27 return c
*(t
/=d
)*t
*t
+ b
;
29 easeOutCubic: function (x
, t
, b
, c
, d
) {
30 return c
*((t
=t
/d
-1)*t
*t
+ 1) + b
;
32 easeInOutCubic: function (x
, t
, b
, c
, d
) {
33 if ((t
/=d/2) < 1) return c
/2*t
*t
*t
+ b
;
34 return c
/2*((t
-=2)*t
*t
+ 2) + b
;
36 easeInQuart: function (x
, t
, b
, c
, d
) {
37 return c
*(t
/=d
)*t
*t
*t
+ b
;
39 easeOutQuart: function (x
, t
, b
, c
, d
) {
40 return -c
* ((t
=t
/d
-1)*t
*t
*t
- 1) + b
;
42 easeInOutQuart: function (x
, t
, b
, c
, d
) {
43 if ((t
/=d/2) < 1) return c
/2*t
*t
*t
*t
+ b
;
44 return -c
/2 * ((t
-=2)*t
*t
*t
- 2) + b
;
46 easeInQuint: function (x
, t
, b
, c
, d
) {
47 return c
*(t
/=d
)*t
*t
*t
*t
+ b
;
49 easeOutQuint: function (x
, t
, b
, c
, d
) {
50 return c
*((t
=t
/d
-1)*t
*t
*t
*t
+ 1) + b
;
52 easeInOutQuint: function (x
, t
, b
, c
, d
) {
53 if ((t
/=d/2) < 1) return c
/2*t
*t
*t
*t
*t
+ b
;
54 return c
/2*((t
-=2)*t
*t
*t
*t
+ 2) + b
;
56 easeInSine: function (x
, t
, b
, c
, d
) {
57 return -c
* Math
.cos(t
/d * (Math.PI/2)) + c
+ b
;
59 easeOutSine: function (x
, t
, b
, c
, d
) {
60 return c
* Math
.sin(t
/d * (Math.PI/2)) + b
;
62 easeInOutSine: function (x
, t
, b
, c
, d
) {
63 return -c
/2 * (Math.cos(Math.PI*t/d) - 1) + b
;
65 easeInExpo: function (x
, t
, b
, c
, d
) {
66 return (t
==0) ? b
: c
* Math
.pow(2, 10 * (t
/d
- 1)) + b
;
68 easeOutExpo: function (x
, t
, b
, c
, d
) {
69 return (t
==d
) ? b
+c
: c
* (-Math
.pow(2, -10 * t
/d
) + 1) + b
;
71 easeInOutExpo: function (x
, t
, b
, c
, d
) {
74 if ((t
/=d/2) < 1) return c
/2 * Math
.pow(2, 10 * (t
- 1)) + b
;
75 return c
/2 * (-Math
.pow(2, -10 * --t
) + 2) + b
;
77 easeInCirc: function (x
, t
, b
, c
, d
) {
78 return -c
* (Math
.sqrt(1 - (t
/=d
)*t
) - 1) + b
;
80 easeOutCirc: function (x
, t
, b
, c
, d
) {
81 return c
* Math
.sqrt(1 - (t
=t
/d
-1)*t
) + b
;
83 easeInOutCirc: function (x
, t
, b
, c
, d
) {
84 if ((t
/=d/2) < 1) return -c
/2 * (Math
.sqrt(1 - t
*t
) - 1) + b
;
85 return c
/2 * (Math
.sqrt(1 - (t
-=2)*t
) + 1) + b
;
87 easeInElastic: function (x
, t
, b
, c
, d
) {
88 var s
=1.70158;var p
=0;var a
=c
;
89 if (t
==0) return b
; if ((t
/=d
)==1) return b
+c
; if (!p
) p
=d
*.3;
90 if (a
< Math
.abs(c
)) { a
=c
; var s
=p
/4; }
91 else var s
= p
/(2*Math.PI) * Math.asin (c/a);
92 return -(a
*Math
.pow(2,10*(t
-=1)) * Math
.sin( (t
*d
-s
)*(2*Math
.PI
)/p
)) + b
;
94 easeOutElastic: function (x
, t
, b
, c
, d
) {
95 var s
=1.70158;var p
=0;var a
=c
;
96 if (t
==0) return b
; if ((t
/=d
)==1) return b
+c
; if (!p
) p
=d
*.3;
97 if (a
< Math
.abs(c
)) { a
=c
; var s
=p
/4; }
98 else var s
= p
/(2*Math.PI) * Math.asin (c/a);
99 return a
*Math
.pow(2,-10*t
) * Math
.sin( (t
*d
-s
)*(2*Math
.PI
)/p
) + c
+ b
;
101 easeInOutElastic: function (x
, t
, b
, c
, d
) {
102 var s
=1.70158;var p
=0;var a
=c
;
103 if (t
==0) return b
; if ((t
/=d/2)==2) return b
+c
; if (!p
) p
=d
*(.3*1.5);
104 if (a
< Math
.abs(c
)) { a
=c
; var s
=p
/4; }
105 else var s
= p
/(2*Math.PI) * Math.asin (c/a);
106 if (t
< 1) return -.5*(a
*Math
.pow(2,10*(t
-=1)) * Math
.sin( (t
*d
-s
)*(2*Math
.PI
)/p
)) + b
;
107 return a
*Math
.pow(2,-10*(t
-=1)) * Math
.sin( (t
*d
-s
)*(2*Math
.PI
)/p
)*.5 + c
+ b
;
109 easeInBack: function (x
, t
, b
, c
, d
, s
) {
110 if (s
== undefined) s
= 1.70158;
111 return c
*(t
/=d
)*t
*((s
+1)*t
- s
) + b
;
113 easeOutBack: function (x
, t
, b
, c
, d
, s
) {
114 if (s
== undefined) s
= 1.70158;
115 return c
*((t
=t
/d
-1)*t
*((s
+1)*t
+ s
) + 1) + b
;
117 easeInOutBack: function (x
, t
, b
, c
, d
, s
) {
118 if (s
== undefined) s
= 1.70158;
119 if ((t
/=d/2) < 1) return c
/2*(t
*t
*(((s
*=(1.525))+1)*t
- s
)) + b
;
120 return c
/2*((t
-=2)*t
*(((s
*=(1.525))+1)*t
+ s
) + 2) + b
;
122 easeInBounce: function (x
, t
, b
, c
, d
) {
123 return c
- jQuery
.easing
.easeOutBounce (x
, d
-t
, 0, c
, d
) + b
;
125 easeOutBounce: function (x
, t
, b
, c
, d
) {
126 if ((t
/=d) < (1/2.75)) {
127 return c
*(7.5625*t
*t
) + b
;
128 } else if (t
< (2/2.75)) {
129 return c
*(7.5625*(t
-=(1.5/2.75))*t
+ .75) + b
;
130 } else if (t
< (2.5/2.75)) {
131 return c
*(7.5625*(t
-=(2.25/2.75))*t
+ .9375) + b
;
133 return c
*(7.5625*(t
-=(2.625/2.75))*t
+ .984375) + b
;
136 easeInOutBounce: function (x
, t
, b
, c
, d
) {
137 if (t
< d
/2) return jQuery
.easing
.easeInBounce (x
, t
*2, 0, c
, d
) * .5 + b
;
138 return jQuery
.easing
.easeOutBounce (x
, t
*2-d
, 0, c
, d
) * .5 + c
*.5 + b
;