CSS 动画

动画和过度的区别:
  • 过度只能从一个状态到另一个状态,无法控制更加精细的过程。
  • 过度必须有触发事件,动画可以没有。
  • 过度变化没有次数,动画可以指定次数。
动画使用过程
  • 定义动画。通过@keyframes关键帧。
  • 在指定元素中,调用动画。通过anmiation属性来调用。

【注意】使用动画可以设置多个属性的变化过程。前提是这些属性是数值型的。


动画属性:

1.animation-name 动画名
  • 指定要调用的动画,属性值为动画名(必填)。
2.animation-duration 一次动画完成的时间
  • 一次动画完成的时间,属性值为数值,单位为s(秒)。
3.animation-iteration-count 动画执行的次数
  • 动画执行的次数,默认是一次,属性值为数值,不需要单位,infinite指无限循环播放。
4.animation-timing-function 动画执行的运动曲线
  • linear:线性匀速。
  • ease:先加速再减速(默认)。
  • ease-in:加速。
  • ease-out:减速。
    ease-in-out:先加速再减速。
5.animation-direction 运动方向
  • normal:正常,从初始帧到结束帧。
  • reverse:从结束帧到开始帧。
  • alternate:交替。第一次从初始帧到结束帧,第二次从结束帧到初始帧。
  • alternate-reverse:反向交替。第一次从结束帧到初始帧,第二次从初始帧到结束帧。
6.animation-dalay 动画延迟的时间
  • 动画延迟的时间。单位为s或者ms。
  • 只会在动画第一次执行时生效。
7.animation-fill-mode 动画填充的方式
  • backwards:在有延迟的情况下,让0%在延迟时间内就生效。
  • forwards:在动画结束后,让元素保持结束帧状态。
  • both:backwards和forwards都生效。
例:
  <style>
    .box{
      width: 200px;
      height: 100px;
      background-color: #e74c3c;
      /* 指定要调用的动画,属性值为动画名(必填) */
      animation-name: dh2;
      /* 一次动画完成的时间(必填) */
      animation-duration: 2s;
      /* 动画执行的次数  默认是一次, 属性值为数字,不需要单位, infinite 无限循环播放。 */
      animation-iteration-count: 1;
      /* 动画执行的运动曲线
        linear:线性匀速
        ease:先加速后减速(默认)
        ease-in:加速
        ease-out:减速
        ease-in-out:先加速后减速。
       */
      animation-timing-function: linear;
      /* 运动方向
        normal:正常,从初始帧到结束帧
        reverse:从结束帧到开始帧
        alternate:交替 第一次从初始帧到结束帧,第二次从结束帧到初始帧。
        alternate-reverse:反向交替  第一次从结束帧到初始帧,第二次从初始帧到结束帧。
       */
      animation-direction:alternate;
      /* 动画延迟时间 单位为s或者ms
        只会在动画第一次执行时生效。
       */
      animation-delay: 2s;
      /* 动画的填充方式:
        backwards:在有延迟的情况下,让0%在延迟时间内就生效。
        forwards:在动画结束后,让元素保持结束帧状态。
        both:backwards和forwards都生效。
        */
      animation-fill-mode: both;
    }
    .box:hover{
      width: 800px;
    }

    @keyframes dh {
      /* 初始帧 */
      from{
        width: 400px;
      }
      /* 结束帧 */
      to{
        width: 800px;
      }
    }

    @keyframes dh2 {
      0%{
        width: 200px;
        background-color: #e74c3c;
      }
      25%{
        width: 600px;
        background-color: #27ae60;
      }
      50%{
        width: 400px;
        background-color: #16a085;
      }
      75%{
        width: 600px;
        background-color: #f1c40f;
      }
      100%{
        width: 800px;
        background-color: #8e44ad;
      }
  </style>

<body>
  <div class="box"></div>
</body>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值