# CSS 动画

动画 ( animation ) 是 CSS3 中具有颠覆性的特征之一,可通过设置多个节点来精确控制一个或一组动画,常用来实现复杂的动画效果。

相比较过渡,动画可以实现更多变化,更多控制,连续自动播放等效果。

# 动画基本使用

动画是使元素从一种祥式逐渐变化为另一种样式的效果。 您可以改变任意多的样式任意多的次数。

# 定义动画

@keyframes 中规定某项 CSS 样式,就能创建由当前样式逐渐改为新样式的动画效果。0%是动画的开始,100%是动画的完成。这样的规则就是动画序列。

提示

请用百分比来规定变化发生的时间,或用关键词"from"和"to",等同于 0%和 100%,百分比可以写多个,百分比即为时间的划分

@keyframes 动画名称 {
  /* 开始状态 */
  0% {
    属性名:;
  }
  /* 结束状态 */
  100% {
    属性名:;
  }
}

# 使用动画

div {
  animation-name: 动画名称;
  animation-duration: 持续时间;
}

# 动画属性

# 运动曲线

div {
  animation-timing-function: ease;
}
描述
linear 动画从头到尾的速度是相同的(匀速)
ease 默认。动画以低速开始,然后加快,在结束前变慢
ease-in 动画以低速开始
ease-out 动画以低速结束
ease-in-out 动画以低速开始和结束
steps 指定了时间函数中的间隔数量(步长)

# 开始时间

div {
  animation-delay: 1s;
}

# 播放次数

默认播放次数为 1

div {
  /* 指定次数 */
  animation-iteration-count: 5;
  /* 无限次 */
  animation-iteration-count: infinite;
}

# 是否反方向播放

结束时是否反方向播放

div {
  /* 结束时直接跳转至起始状态(默认) */
  animation-direction: normal;
  /* 结束时反方向播放 */
  animation-direction: alternate;
}

# 动画结束后保持结束状态

默认不返回(backwards)

div {
  animation-fill-mode: forwards;
}

# 控制动画播放

div {
  /* 播放(默认) */
  animation-play-state: running;
  /* 暂停 */
  animation-play-state: paused;
}

# 动画属性简写

语法:animation: 动画名称 持续时间 [运动曲线] [开始时间] [播放次数] [是否反方向] [动画起始/结束状态]

div {
  animation: move 2s;
  animation: move 2s ease 0s 5 normal backwards;
  /* 多个动画 */
  animation: move1 2s, move2 2s;
}
最后更新: 2022/9/12 16:01:28