Javascript animation easing functions
A collection of animation easing functions in Javascript’s ES6 module format. Easing functions specify the rate of change of a parameter over time. Learn more about easing here.
Easing is an ES module. If your runtime environment does not support ES modules, you’ll need a transpiler (Babel is a nice one).
If you’re using NPM, you can install Easing with the following command:
$ npm install @degjs/easing
import { easeInOutCubic } from '@degjs/easing';
// animate a value from 100 to 300 with ease-in-out easing over the course of 1 second
let currentIteration = 0,
totalIterations = 60,
startValue = 100,
changeInValue = 200,
easedValue;
window.requestAnimationFrame(onAnimationFrame);
function onAnimationFrame() {
if(currentIteration < totalIterations) {
currentIteration++;
easedValue = easeInOutCubic(currentIteration, startValue, changeInValue, totalIterations);
}
}
All methods take the same four parameters, defined below:
Type: Number
The current iteration. Think of this in terms of animation frames or seconds/milliseconds.
Type: Number
The start value. This is the initial state of the value that will be animated.
Type: Number
The amount of change in the value over the duration of the animation.
The duration of the animation. Think of this in terms of animation frames or seconds/milliseconds.
A linear rate of change with no easing.
Starts quickly and ends slowly.
Starts slowly and ends quickly.
Starts and ends slowly.