提问:animation动画与transform属性的区别

回答:比起transform需要手动触发,animation动画是自动播放的,并且可控,可循环播放,功能更加强大

接下来看一下动画实现的步骤:

第一步定义动画

/* 方法一 */

    @keyframes  动画名{

         from{}

         to{}
    }

    /* 方法二*/

    @keyframes  动画名{

        0%{
          }
        50%{
          }
        100%{
          }
    }

    /* 例子 */
    @keyframes font {
      45%{
        transform: rotate(360deg) scale(3.5) 
      }
      80%{
        transform:  scale(2.7);
      }
      90%{
        transform:  scale(1.6);
      }
      100%{
        transform: scale(1.5);
      }
    }

注意:方法二中是%到100%都是可以定义的,在这里我只演示了三个值。如果动画开始时没有明显的变化,则0%和from{}可以省略不写。

第二步:调用动画

/* 语法提示 */ 
animation: name duration timing-function delay iteration-count direction fill-mode;

/* 举例*/
    .font{
      position: absolute;
      left: 0;
      right: 0;
      top: 0;
      bottom: 0;
      margin: auto;
      animation: font 1s  linear ;
    }

在css属性中,通过animation这个属性来调用动画

语法结构: animation:动画名称(必写)  动画时长(必写)  速度曲线   延迟时间   重复次数   动画方向   执行完毕时的状态

注意:取值不分先后顺序,如果有两个时间值,那么第一个时间表示动画时长,第二个时间表示动画播放的延迟时间

提醒:要想让运动的动画鼠标经过时停止,需要在运动的元素的选择器的hover伪类选择器里设置 animation-play-state: paused; 

 代码展示:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>动画</title>
  <!-- 动画比过渡的优点在于,可以不需要手动操作就能实现自动播放和循环播放 过程可控 运动完之后停留在结束状态 -->
  <!-- 动画的使用分为两步:
  1.定义动画 动画名字可以自定义,理解成取类名
  2.使用动画 -->
  <style>
    .box{
      width: 100px;
      height: 100px;
      background-color: #eee8aa;
      margin: 100px auto;
      /* 使用动画 */
      /* 属性名: 动画名(必写) 运动时间(必写) 速度曲线 延迟时间 运动次数(infinite是无限的意思) 运动方向 执行完毕时的状态  */
      /* 速度曲线:linear(匀速线性运动) ease-in-out(开始和结束慢) */
      /* 运动方向:alternate 逆向播放 回来的那一次也算一次次数 */
      /* 结束状态:forward(停留在结束状态) 默认停留在起始状态 */
      animation: yundong 3s  2 linear forwards alternate;    
    }
    .box:hover{
      animation-play-state: paused;
    }
    /* 定义动画 */
    @keyframes yundong{
      form{
      }
     to{
      transform: translateX(600px) rotatey(360deg);
      }
    }
  </style>
</head>
<body>
  <div class="box">
    <h2>简单动画</h2>
  </div>
</body>
</html>

效果展示: 


html5 css动画 css动画from to_延迟时间

一个简单的动画效果 目前用到的动画属性值

类别 

属性值

作用

曲线速率

linear

匀速线性运动

曲线速率

steps(数字)

逐帧动画(一般配合精灵图使用)

曲线速率

ease-in-out

慢速开始和结束

动画次数

number

定义运动的次数,默认是一次

动画次数

infinite

无限运动(反复横跳 不是)

动画方向

alternate

逆向运动(运动次数需要大于1才能看出效果)

动画终点

none(默认值)

默认终点是原点

动画终点

forwards

在运动结束的之后,停到结束位

以上内容,是自己在学习中总结出来的,有啥错误和补充欢迎在评论区留言~