animation用于定义元素的子属性

204 阅读2分钟

CSS的animation属性用于定义元素的动画效果。它包含多个子属性,下面是对每个子属性的介绍:

  1. animation-name:指定要应用的关键帧动画的名称,可以是预定义的关键帧名称,也可以是自定义的关键帧名称。

  2. animation-duration:指定动画的持续时间,以秒(s)或毫秒(ms)为单位。

  3. animation-timing-function:指定动画的时间函数,控制动画在持续时间内的速度变化。常见的值包括:

    • ease:默认值,动画以缓入缓出的方式进行。
    • linear:动画以匀速进行。
    • ease-in:动画以缓入的方式开始。
    • ease-out:动画以缓出的方式结束。
    • ease-in-out:动画以缓入缓出的方式开始和结束。
  4. animation-delay:指定动画开始之前的延迟时间,以秒(s)或毫秒(ms)为单位。

  5. animation-iteration-count:指定动画的重复次数。常见的值包括:

    • infinite:无限循环动画。
    • 数字值:指定动画的具体重复次数。
  6. animation-direction:指定动画的播放方向。常见的值包括:

    • normal:默认值,动画正常播放。
    • reverse:动画反向播放。
    • alternate:动画在正向和反向之间交替播放。
    • alternate-reverse:动画在反向和正向之间交替播放。
  7. animation-fill-mode:指定动画在播放之前和之后的样式状态。常见的值包括:

    • none:默认值,动画不会影响元素的样式。
    • forwards:动画完成后,元素将保持动画结束时的样式。
    • backwards:动画开始前,元素将应用动画开始时的样式。
    • both:动画同时应用forwardsbackwards的效果。
  8. animation-play-state:指定动画的播放状态。常见的值包括:

    • running:默认值,动画正在播放。
    • paused:动画暂停播放。

这些属性可以通过简写形式的animation属性一起设置,或者单独使用各个子属性进行设置。例如:

.element {
  animation: my-animation 2s ease-in-out infinite;
}

或者:

.element {
  animation-name: my-animation;
  animation-duration: 2s;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
}

请注意,animation属性还可以使用关键帧动画的百分比值来定义动画序列,使用@keyframes规则来定义关键帧动画的具体样式。