set()
立即设置一个或多个属性值到一个或多个目标。
const setter = utils.set(targets, properties);
参数
名称 | 接受 | 描述 |
---|---|---|
目标 | 目标 | 目标元素 |
属性 | 对象 |
目标元素的有效属性和值的对象 |
返回
utils.set()
适用于设置复杂值,但对于在同一目标上重复更新相同属性,建议使用 Animatable 以获得更好的性能。
如果您尝试在 DOM 或 SVG 元素上设置尚未在该元素上定义的属性,utils.set()
将不起作用。
set() 代码示例
import { utils, stagger } from 'animejs';
const [ $set, $revert ] = utils.$('button');
const squares = utils.$('.square');
const colors = ['red', 'orange', 'yellow'];
let setter;
const setStyles = () => {
setter = utils.set(squares, {
borderRadius: '50%',
y: () => utils.random(-1, 1) + 'rem',
scale: stagger(.1, { start: .25, ease: 'out' }),
color: () => `var(--hex-${utils.randomPick(colors)})`
});
$set.setAttribute('disabled', 'true');
$revert.removeAttribute('disabled');
}
const revertStyles = () => {
setter.revert();
$set.removeAttribute('disabled');
$revert.setAttribute('disabled', 'true');
}
$set.addEventListener('click', setStyles);
$revert.addEventListener('click', revertStyles);
<div class="large justified row">
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
<div class="square"></div>
</div>
<div class="medium row">
<fieldset class="controls">
<button>Set styles</button>
<button disabled>Revert styles</button>
</fieldset>
</div>