Shifty supports a number of easing formulas, which you can see in
easing-functions.js
. You can add new easing
formulas by attaching methods to shifty.Tweenable.formulas
.
Using multiple easing formulas
Shifty supports tweens that have different easing formulas for each property.
Having multiple easing formulas on a single tween can make for some really
interesting animations, because you aren't constrained to moving things in a
straight line. You can make curves! To do this, simply supply easing
as an
Object, rather than a string:
tween({
from: {
x: 0,
y: 0,
},
to: {
x: 250,
y: 150,
},
easing: {
x: 'swingFromTo',
y: 'bounce',
},
})
Per-tween custom easing functions
You are not limited to attaching functions to shifty.Tweenable.formulas
. You can also supply a custom easing function
directly to shifty.tween
:
tween({
from: {
x: 0,
y: 0,
},
to: {
x: 250,
y: 150,
},
easing: pos => Math.pow(pos, 3),
})
Or even an Object of mixed strings and functions:
tween({
from: {
x: 0,
y: 0,
},
to: {
x: 250,
y: 150,
},
easing: {
x: pos => Math.pow(pos, 3),
y: 'linear',
},
})
Using an array of cubic bezier points
You can provide an array of four number
s as easing
to represent a cubic
Bezier curve:
tween({
from: {
x: 0,
},
to: {
x: 250,
},
// Equivalent to a linear curve
easing: [0.25, 0.25, 0.75, 0.75],
})
shifty.interpolate
also supports all formats for easing
.