Skip to content

Instantly share code, notes, and snippets.

@yairEO
Forked from gre/easing.js
Last active March 4, 2021 10:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save yairEO/03026d9e97991bf94d57cd22b8c8899a to your computer and use it in GitHub Desktop.
Save yairEO/03026d9e97991bf94d57cd22b8c8899a to your computer and use it in GitHub Desktop.
Simple Easing Functions in Javascript - see https://github.com/gre/bezier-easing
/*
* Easing Functions - inspired from http://gizma.com/easing/
* only considering the t value for the range [0, 1] => [0, 1]
*/
EasingFunctions = {
// no easing, no acceleration
linear(t) { return t },
// accelerating from zero velocity
easeInQuad(t) { return t*t },
// decelerating to zero velocity
easeOutQuad(t) { return t*(2-t) },
// acceleration until halfway, then deceleration
easeInOutQuad(t) { return t<.5 ? 2*t*t : -1+(4-2*t)*t },
// accelerating from zero velocity
easeInCubic(t) { return t*t*t },
// decelerating to zero velocity
easeOutCubic(t) { return (--t)*t*t+1 },
// acceleration until halfway, then deceleration
easeInOutCubic(t) { return t<.5 ? 4*t*t*t : (t-1)*(2*t-2)*(2*t-2)+1 },
// accelerating from zero velocity
easeInQuart(t) { return t*t*t*t },
// decelerating to zero velocity
easeOutQuart(t) { return 1-(--t)*t*t*t },
// acceleration until halfway, then deceleration
easeInOutQuart(t) { return t<.5 ? 8*t*t*t*t : 1-8*(--t)*t*t*t },
// accelerating from zero velocity
easeInQuint(t) { return t*t*t*t*t },
// decelerating to zero velocity
easeOutQuint(t) { return 1+(--t)*t*t*t*t },
// acceleration until halfway, then deceleration
easeInOutQuint(t) { return t<.5 ? 16*t*t*t*t*t : 1+16*(--t)*t*t*t*t }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment