缓动
为所有动画属性或特定属性定义缓动函数。
缓动函数控制属性值随时间变化的速率,决定动画在播放期间不同点的速度。
所有 Anime.js 内置的缓动函数都可以通过传递缓动名称字符串或访问 eases 对象上的函数来使用。
import { eases } from 'animejs';
const { linear, outExpo, cubicBezier } = eases;
createSpring() 缓动函数必须单独导入。
import { createSpring } from 'animejs';
接受
内置字符串 | 函数 | 参数 |
---|---|---|
'linear' 'linear(0, .5 75%, 1)' |
linear() |
坐标 (0, '.5 75%', 1 ) |
'irregular' JS'irregular(10, 1)' JS |
irregular() |
长度 = 10 , 随机性 = 1 |
'steps' 'steps(10)' |
steps() |
steps = 10 |
'cubicBezier' 'cubicBezier(.5,0,.5,1)' |
cubicBezier() |
x1 = .5 , y1 = 0 , x2 = .5 , y2 = 1 |
'in' 'in(1.675)' |
in() |
power = 1.675 |
'out' 'out(1.675)' |
out() |
power = 1.675 |
'inOut' 'inOut(1.675)' |
inOut() |
power = 1.675 |
'inQuad' JS |
inQuad |
- |
'outQuad' JS |
outQuad |
- |
'inOutQuad' JS |
inOutQuad |
- |
'inCubic' JS |
inCubic |
- |
'outCubic' JS |
outCubic |
- |
'inOutCubic' JS |
inOutCubic |
- |
'inQuart' JS |
inQuart |
- |
'outQuart' JS |
outQuart |
- |
'inOutQuart' JS |
inOutQuart |
- |
'inQuint' JS |
inQuint |
- |
'outQuint' JS |
outQuint |
- |
'inOutQuint' JS |
inOutQuint |
- |
'inSine' JS |
inSine |
- |
'outSine' JS |
outSine |
- |
'inOutSine' JS |
inOutSine |
- |
'inCirc' JS |
inCirc |
- |
'outCirc' JS |
outCirc |
- |
'inOutCirc' JS |
inOutCirc |
- |
'inExpo' JS |
inExpo |
- |
'outExpo' JS |
outExpo |
- |
'inOutExpo' JS |
inOutExpo |
- |
'inBounce' JS |
inBounce |
- |
'outBounce' JS |
outBounce |
- |
'inOutBounce' JS |
inOutBounce |
- |
'inBack' JS'inBack(1.70158) ' JS |
inBack() |
overshoot = 1.70158 |
'outBack' JS'outBack(1.70158) ' JS |
outBack() |
overshoot = 1.70158 |
'inOutBack' JS'inOutBack(1.70158) ' JS |
inOutBack() |
overshoot = 1.70158 |
'inElastic' JS'inElastic(1, .3) ' JS |
inElastic() |
amplitude = 1 , period = .3 |
'outElastic' JS'outElastic(1, .3) ' JS |
outElastic() |
amplitude = 1 , period = .3 |
'inOutElastic' JS'inOutElastic(1, .3) ' JS |
inOutElastic() |
amplitude = 1 , period = .3 |
- | createSpring() |
{ mass: 1, stiffness: 100, damping: 10, velocity: 0 } |
默认
'out(2)'
要全局更改默认值,请更新 engine.defaults 对象。
import { engine } from 'animejs';
engine.defaults.ease = 'outElastic(1, .5)'; // // v3 throwback :)
缓动代码示例
import { animate, waapi, eases, createSpring } from 'animejs';
animate('.row:nth-child(1) .square', {
x: '17rem',
rotate: 360,
ease: 'inQuad',
});
animate('.row:nth-child(2) .square', {
x: '17rem',
rotate: 360,
ease: eases.outQuad,
});
waapi.animate('.row:nth-child(3) .square', {
x: '17rem',
rotate: {
to: 360,
ease: 'out(6)',
},
ease: createSpring({ stiffness: 70 }),
});
<div class="medium row">
<div class="square"></div>
<div class="padded label">all: 'inQuad'</div>
</div>
<div class="medium row">
<div class="square"></div>
<div class="padded label">all: eases.outQuad</div>
</div>
<div class="medium row">
<div class="square"></div>
<div class="padded label">x: createSpring()<br>rotate: 'inQuad'</div>
</div>