基于函数的值
通过使用 Function
作为值,为多目标动画的每个目标设置不同的值。
基于函数的的值可以使用 animation.refresh()
方法重新计算,而无需创建新的动画。
接受
一个带有以下参数的 Function
animate(targets, {
x: (target, index, length) => target.dataset.value * (length - index),
});
参数
名称 | 描述 |
---|---|
target | 当前动画目标元素 |
index | 当前目标元素的索引 |
length | 动画的目标总数 |
必须返回
基于函数的值 代码示例
import { animate } from 'animejs';
animate('.square', {
x: $el => /** @type {HTMLElement} */($el).getAttribute('data-x'),
y: (_, i) => 50 + (-50 * i),
scale: (_, i, l) => (l - i) * .75,
rotate: () => utils.random(-360, 360),
borderRadius: () => `+=${utils.random(0, 8)}`,
duration: () => utils.random(1200, 1800),
delay: () => utils.random(0, 400),
ease: 'outElastic(1, .5)',
});
<div class="medium row">
<div class="square" data-x="170"></div>
</div>
<div class="medium row">
<div class="square" data-x="80"></div>
</div>
<div class="medium row">
<div class="square" data-x="270"></div>
</div>