Created
July 22, 2013 05:45
-
-
Save monsieuroeuf/6051532 to your computer and use it in GitHub Desktop.
All of the Ease and Wizz functions, as adapted from Robert Penner's easing equations.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function easeandwizz_inBack(t, b, c, d) { | |
return c*(t/=d)*t*((s+1)*t - s) + b; | |
} | |
function easeandwizz_inOutBack(t, b, c, d) { | |
if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b; | |
return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b; | |
} | |
function easeandwizz_outBack(t, b, c, d) { | |
return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b; | |
} | |
function easeandwizz_outBounce(t, b, c, d) { | |
if ((t/=d) < (1/2.75)) { return c*(7.5625*t*t) + b } | |
else if (t < (2/2.75)) { return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b } | |
else if (t < (2.5/2.75)) { return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b } | |
else { return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b } | |
} | |
function easeandwizz_inBounce(t, b, c, d) { | |
return c - easeandwizz_outBounce (d-t, 0, c, d) + b; | |
} | |
function easeandwizz_inBounce(t, b, c, d) { | |
return c - easeandwizz_outBounce (d-t, 0, c, d) + b; | |
} | |
function easeandwizz_outBounce(t, b, c, d) { | |
if ((t/=d) < (1/2.75)) { | |
return c*(7.5625*t*t) + b; | |
} else if (t < (2/2.75)) { | |
return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b; | |
} else if (t < (2.5/2.75)) { | |
return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b; | |
} else { | |
return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b; | |
} | |
} | |
function easeandwizz_inOutBounce(t, b, c, d) { | |
if (t < d/2) return easeandwizz_inBounce (t*2, 0, c, d) * .5 + b; | |
else return easeandwizz_outBounce (t*2-d, 0, c, d) * .5 + c*.5 + b; | |
} | |
function easeandwizz_outBounce(t, b, c, d) { | |
if ((t/=d) < (1/2.75)) { return c*(7.5625*t*t) + b } | |
else if (t < (2/2.75)) { return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b } | |
else if (t < (2.5/2.75)) { return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b } | |
else { return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b } | |
} | |
function easeandwizz_inCirc(t, b, c, d) { | |
return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b; | |
} | |
function easeandwizz_inOutCirc(t, b, c, d) { | |
if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b; | |
return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b; | |
} | |
function easeandwizz_outCirc(t, b, c, d) { | |
return c * Math.sqrt(1 - (t=t/d-1)*t) + b; | |
} | |
function easeandwizz_inElastic(t, b, c, d, a, p) { | |
if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; | |
if (!a || a < Math.abs(c)) { a=c; var s=p/4; } | |
else var s = p/(2*Math.PI) * Math.asin (c/a); | |
return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; | |
} | |
function easeandwizz_inOutElastic(t, b, c, d, a, p) { | |
if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5); | |
if (!a || a < Math.abs(c)) { a=c; var s=p/4; } | |
else var s = p/(2*Math.PI) * Math.asin (c/a); | |
if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; | |
return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b; | |
} | |
function easeandwizz_outElastic(t, b, c, d, a, p) { | |
if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; | |
if (!a || a < Math.abs(c)) { a=c; var s=p/4; } | |
else var s = p/(2*Math.PI) * Math.asin (c/a); | |
return (a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b); | |
} | |
function easeandwizz_inExpo(t, b, c, d) { | |
return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b; | |
} | |
function easeandwizz_inOutExpo(t, b, c, d) { | |
if (t==0) return b; | |
if (t==d) return b+c; | |
if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b; | |
return c/2 * (-Math.pow(2, -10 * --t) + 2) + b; | |
} | |
function easeandwizz_outExpo(t, b, c, d) { | |
return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b; | |
} | |
function easeandwizz_inQuad(t, b, c, d) { | |
return c*(t/=d)*t + b; | |
} | |
function easeandwizz_inOutQuad(t, b, c, d) { | |
if ((t/=d/2) < 1) return c/2*t*t + b; | |
return -c/2 * ((--t)*(t-2) - 1) + b; | |
} | |
function easeandwizz_outQuad(t, b, c, d) { | |
return -c *(t/=d)*(t-2) + b; | |
} | |
function easeandwizz_inQuart(t, b, c, d) { | |
return c*(t/=d)*t*t*t + b; | |
} | |
function easeandwizz_inOutQuart(t, b, c, d) { | |
if ((t/=d/2) < 1) return c/2*t*t*t*t + b; | |
return -c/2 * ((t-=2)*t*t*t - 2) + b; | |
} | |
function easeandwizz_outQuart(t, b, c, d) { | |
return -c * ((t=t/d-1)*t*t*t - 1) + b; | |
} | |
function easeandwizz_inQuint(t, b, c, d) { | |
return c*(t/=d)*t*t*t*t + b; | |
} | |
function easeandwizz_inOutQuint(t, b, c, d) { | |
if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b; | |
return c/2*((t-=2)*t*t*t*t + 2) + b; | |
} | |
function easeandwizz_outQuint(t, b, c, d) { | |
return c*((t=t/d-1)*t*t*t*t + 1) + b; | |
} | |
function easeandwizz_inSine(t, b, c, d) { | |
return -c * Math.cos(t/d * (Math.PI/2)) + c + b; | |
} | |
function easeandwizz_inOutSine(t, b, c, d) { | |
return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b; | |
} | |
function easeandwizz_outSine(t, b, c, d) { | |
return c * Math.sin(t/d * (Math.PI/2)) + b; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment