'@keyframes'

关键帧 @keyframes 规则通过在动画序列中定义关键帧的样式来控制 CSS 动画序列中的中间步骤。和 transition 相比,keyframes 可以控制动画序列的中间步骤。

渲染实现

安卓和 iOS 都使用 keyframes 实现动画,不同之处在于安卓动画所造成的属性改变都会真实作用到组件上,而 iOS 的 transform 部分使用 CATransform3D 来实现。

属性个数不定

如果一个关键帧中没有出现其他关键帧中的属性,那么这个属性将使用插值(不能使用插值的属性除外,这些属性会被忽略掉)。例如:

@keyframes identifier {
  0% {
    background-color: blue;
    opacity: 0;
  }
  30% {
    opacity: 0.3;
  }
  72% {
    background-color: yellow;
  }
  100% {
    opacity: 1;
    background-color: red;
  }
}

关键帧取值

  • from 等价于 0%
  • to 等价于 100%
  • <percentage> 动画序列中触发关键帧的时间点,使用百分值来表示。

支持的属性

keyframes 动画支持的属性有: leftrighttopbottomwidthheightopacitybackground-colorcolortransformmax-widthmin-widthmax-heightmin-heightpadding-leftpadding-rightpadding-toppadding-bottommargin-leftmargin-rightmargin-topmargin-bottomborder-left-widthborder-right-widthborder-top-widthborder-bottom-widthborder-left-colorborder-right-colorborder-top-colorborder-bottom-colorflex-basisflex-growfilter

除非另有说明,本项目采用知识共享署名 4.0 国际许可协议进行许可,代码示例采用 Apache License 2.0 许可协议进行许可。