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>