CSS 变换

CSS transform 属性可以通过在参数对象中直接指定单个属性来动画,这适用于 JSWAAPI 两个版本的 animate() 方法。

这允许对如何动画单个变换属性进行更高级别的控制,为您提供比 CSS 动画或原生 WAAPI 更大的灵活性。

JS animate() 方法不解析从 CSS 样式声明中声明的变换,变换属性必须直接在元素的行内样式中设置。您可以使用内置的 utils.set() 函数在动画元素之前独立设置您的变换值,并定义它们必须设置的顺序。

为了直接对 transform 属性进行动画,建议使用 WAAPI 驱动的 waapi.animate() 方法。

WAAPI 的单个变换仅适用于支持 CSS.registerProperty(propertyDefinition) 的浏览器,否则将回退到无动画。

有效的单个 CSS 变换属性

名称 简写 默认值 默认单位
translateX x '0px' 'px'
translateY y '0px' 'px'
translateZ z '0px' 'px'
rotate '0deg' 'deg'
rotateX '0deg' 'deg'
rotateY '0deg' 'deg'
rotateZ '0deg' 'deg'
scale '1'
scaleX '1'
scaleY '1'
scaleZ '1'
skew '0deg' 'deg'
skewX '0deg' 'deg'
skewY '0deg' 'deg'
perspective '0px' 'px'

CSS 变换代码示例

import { animate, waapi } from 'animejs';

animate('.square', {
  x: '15rem', // TranslateX shorthand
  scale: 1.25,
  skew: -45,
  rotate: '1turn',
});

// the WAAPI version is recommanded if you want to animate the transform property directly
waapi.animate('.square', {
  transform: 'translateX(15rem) scale(1.25) skew(-45deg) rotate(1turn)',
});
<div class="medium row">
  <div class="square"></div>
  <span class="padded label">JS / WAAPI</span>
</div>
<div class="medium row">
  <div class="square"></div>
  <span class="padded label">WAAPI</span>
</div>