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>