一、简介

animation 是一种简写属性,用来指定一组或多组动画

  1. animation-name:用于描述应动画名字(指定 @keyframes 规则的名字)
  2. animation-duration:设置动画完成一个周期所需的时间
  3. animation-timing-function:设置动画在一个周期中的中间值如何计算
  4. animation-delay:设置动画执行的等待时间
  5. animation-iteration-count:设置动画停止前的执行次数
  6. animation-direction:设置动画是正常播放、反向播放,还是在正常和反向播放序列之间来回交替播放
  7. animation-fill-mode:设置动画执行之前和之后如何将样式应用于其元素
  8. animation-play-state:设置动画是运行还是暂停

当使用 background 属性时,各个背景属性都有初始值

  1. .test{
  2. animation-name: none;
  3. animation-duration: 0s;
  4. animation-timing-function: ease;
  5. animation-delay: 0s;
  6. animation-iteration-count: 1;
  7. animation-direction: normal;
  8. animation-fill-mode: none;
  9. animation-play-state: running;
  10. }

我们给元素加动画的时一般都使用 animation 这种简写形式,而不是一个个分开写。

二、各个属性

1. animation-name

用于描述应动画名字(指定 @keyframes 规则的名字)

/ 设置的动画的关键帧 / @bounce{ 0% { background-color: orange; color: #000; margin-top: 0; } 100% { background-color: orange; color: #000; margin-top: 40%; } }

  1. <a name="YfwAv"></a>
  2. ### 2. animation-duration
  3. 设置动画完成一个周期所需的时间
  4. - 类比 [transition-duration](https://www.yuque.com/machaoxue/depository/mqqsrf#kI4DR)
  5. ```css
  6. .test{
  7. animation-duration: 1s;
  8. }

3. animation-timing-function

设置动画在一个周期中的中间值如何计算

4. animation-delay

设置动画执行的等待时间

5. animation-iteration-count

设置动画停止前的运行次数

  • 可以写 infinite 一直运行,可以指定次数 ```css .test{ animation-iteration-count: infinite; }

.test2{ animation-iteration-count: 2; }

.test3{ animation-iteration-count: 1.5; }

  1. <a name="qV8JT"></a>
  2. ### 6. animation-direction
  3. 设置动画是正常播放、反向播放,还是在正常和反向播放序列之间来回交替播放
  4. - 有四个值可选 normal、reverse、alternate、alternate-reverse
  5. ```css
  6. /* 正常播放 */
  7. .test{
  8. animation-direction: normal;
  9. }
  10. /* 反向播放 */
  11. .test2{
  12. animation-direction: reverse;
  13. }
  14. /* 先正常再反向来回交替 */
  15. .test3{
  16. animation-direction: alternate;
  17. }
  18. /* 先反向再正常来回交替 */
  19. .test4{
  20. animation-direction: alternate-reverse;
  21. }

7. animation-fill-mode

设置动画执行之前和之后如何将样式应用于其元素

  • 有四个可选值 none、forwards、backwards、both ```css / 不对元素添加任何样式,默认值 / .test{ animation-fill-mode: none; }

/ 让元素在动画结束后依旧维持动画的最后一帧 / .test2{ animation-fill-mode: forwards; }

/ 让元素初始状态一直维持在动画的第一帧 / .test3{ animation-fill-mode: backwards; }

/ 同时应用 forwards 和 backwards / .test4{ animation-fill-mode: both; }

  1. <a name="eYQS8"></a>
  2. ### 8. animation-play-state
  3. 设置动画是运行还是暂停
  4. - 有两个可选值 paused、running
  5. ```css
  6. /* 暂停 */
  7. .test{
  8. animation-play-state: paused;
  9. }
  10. /* 运行 */
  11. .test2{
  12. animation-play-state: running;
  13. }

三、参考链接

MDN:https://developer.mozilla.org/zh-CN/docs/Web/CSS/animation
CSS Tricks:https://css-tricks.com/using-multi-step-animations-transitions/