UNPKG

ease-component

Version:

Easing functions (for canvas etc)

171 lines (139 loc) 4.02 kB
// easing functions from "Tween.js" exports.linear = function(n){ return n; }; exports.inQuad = function(n){ return n * n; }; exports.outQuad = function(n){ return n * (2 - n); }; exports.inOutQuad = function(n){ n *= 2; if (n < 1) return 0.5 * n * n; return - 0.5 * (--n * (n - 2) - 1); }; exports.inCube = function(n){ return n * n * n; }; exports.outCube = function(n){ return --n * n * n + 1; }; exports.inOutCube = function(n){ n *= 2; if (n < 1) return 0.5 * n * n * n; return 0.5 * ((n -= 2 ) * n * n + 2); }; exports.inQuart = function(n){ return n * n * n * n; }; exports.outQuart = function(n){ return 1 - (--n * n * n * n); }; exports.inOutQuart = function(n){ n *= 2; if (n < 1) return 0.5 * n * n * n * n; return -0.5 * ((n -= 2) * n * n * n - 2); }; exports.inQuint = function(n){ return n * n * n * n * n; } exports.outQuint = function(n){ return --n * n * n * n * n + 1; } exports.inOutQuint = function(n){ n *= 2; if (n < 1) return 0.5 * n * n * n * n * n; return 0.5 * ((n -= 2) * n * n * n * n + 2); }; exports.inSine = function(n){ return 1 - Math.cos(n * Math.PI / 2 ); }; exports.outSine = function(n){ return Math.sin(n * Math.PI / 2); }; exports.inOutSine = function(n){ return .5 * (1 - Math.cos(Math.PI * n)); }; exports.inExpo = function(n){ return 0 == n ? 0 : Math.pow(1024, n - 1); }; exports.outExpo = function(n){ return 1 == n ? n : 1 - Math.pow(2, -10 * n); }; exports.inOutExpo = function(n){ if (0 == n) return 0; if (1 == n) return 1; if ((n *= 2) < 1) return .5 * Math.pow(1024, n - 1); return .5 * (-Math.pow(2, -10 * (n - 1)) + 2); }; exports.inCirc = function(n){ return 1 - Math.sqrt(1 - n * n); }; exports.outCirc = function(n){ return Math.sqrt(1 - (--n * n)); }; exports.inOutCirc = function(n){ n *= 2 if (n < 1) return -0.5 * (Math.sqrt(1 - n * n) - 1); return 0.5 * (Math.sqrt(1 - (n -= 2) * n) + 1); }; exports.inBack = function(n){ var s = 1.70158; return n * n * (( s + 1 ) * n - s); }; exports.outBack = function(n){ var s = 1.70158; return --n * n * ((s + 1) * n + s) + 1; }; exports.inOutBack = function(n){ var s = 1.70158 * 1.525; if ( ( n *= 2 ) < 1 ) return 0.5 * ( n * n * ( ( s + 1 ) * n - s ) ); return 0.5 * ( ( n -= 2 ) * n * ( ( s + 1 ) * n + s ) + 2 ); }; exports.inBounce = function(n){ return 1 - exports.outBounce(1 - n); }; exports.outBounce = function(n){ if ( n < ( 1 / 2.75 ) ) { return 7.5625 * n * n; } else if ( n < ( 2 / 2.75 ) ) { return 7.5625 * ( n -= ( 1.5 / 2.75 ) ) * n + 0.75; } else if ( n < ( 2.5 / 2.75 ) ) { return 7.5625 * ( n -= ( 2.25 / 2.75 ) ) * n + 0.9375; } else { return 7.5625 * ( n -= ( 2.625 / 2.75 ) ) * n + 0.984375; } }; exports.inOutBounce = function(n){ if (n < .5) return exports.inBounce(n * 2) * .5; return exports.outBounce(n * 2 - 1) * .5 + .5; }; // aliases exports['in-quad'] = exports.inQuad; exports['out-quad'] = exports.outQuad; exports['in-out-quad'] = exports.inOutQuad; exports['in-cube'] = exports.inCube; exports['out-cube'] = exports.outCube; exports['in-out-cube'] = exports.inOutCube; exports['in-quart'] = exports.inQuart; exports['out-quart'] = exports.outQuart; exports['in-out-quart'] = exports.inOutQuart; exports['in-quint'] = exports.inQuint; exports['out-quint'] = exports.outQuint; exports['in-out-quint'] = exports.inOutQuint; exports['in-sine'] = exports.inSine; exports['out-sine'] = exports.outSine; exports['in-out-sine'] = exports.inOutSine; exports['in-expo'] = exports.inExpo; exports['out-expo'] = exports.outExpo; exports['in-out-expo'] = exports.inOutExpo; exports['in-circ'] = exports.inCirc; exports['out-circ'] = exports.outCirc; exports['in-out-circ'] = exports.inOutCirc; exports['in-back'] = exports.inBack; exports['out-back'] = exports.outBack; exports['in-out-back'] = exports.inOutBack; exports['in-bounce'] = exports.inBounce; exports['out-bounce'] = exports.outBounce; exports['in-out-bounce'] = exports.inOutBounce;