2.9 CSS3动画(animation)

2.9 动画(animation)

「动画」是CSS3中最具颠覆性的特征之一,可通过设置多个节点来精确的控制一个或者一组动画,从而实现复杂的动画效果。

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

2.9.1「动画的使用」

  1. 定义动画

  2. 调用定义好的动画

/*1. 定义动画*/
@keyframes 动画名称 {
   0% {
        100px;
  }
   100% {
        200px
  }
}
div {
/* 调用动画 */
 animation-name: 动画名称;
 /* 持续时间 */
 animation-duration: 持续时间;
}

2.9.2「动画序列」

  • 0% 是动画的开始,100 % 是动画的完成,这样的规则就是动画序列

  • @keyframs中规定某项 CSS 样式,就由创建当前样式逐渐改为新样式的动画效果

  • 动画是使元素从一个样式逐渐变化为另一个样式的效果,可以改变任意多的样式任意多的次数

  • 用百分比来规定变化发生的时间,或用 fromto,等同于 0% 和 100%

<style>
   div {
      100px;
     height: 100px;
     background-color: aquamarine;
     animation-name: move;
     animation-duration: 0.5s;
  }

   @keyframes move{
     0% {
       transform: translate(0px)
    }
     100% {
       transform: translate(500px, 0)
    }
  }
</style>

2.9.3「动画常见属性」

属性描述
@keyframes 规定动画。
animation 所有动画属性的简写属性,除了animation-play-state属性。
animation-name 规定@keyframes动画的名称。(必须的)
animation-duration 规定动画完成一个周期所花费的秒或毫秒,默认是0。(必须的)
animation-timing-function 规定动画的速度曲线,默认是“ease”。
animation-delay 规定动画何时开始,默认是0。
animation-iteration-count 规定动画被播放的次数,默认是1,还有infinite
animation-direction 规定动画是否在下一周期逆向播放,默认是“normal ",alternate逆播放
animation-play-state 规定动画是否正在运行或暂停。默认是"running",还有"pause"。
animation-fill-mode 规定动画结束后状态,保持forwards回到起始backwards
div {
  100px;
 height: 100px;
 background-color: aquamarine;
 /* 动画名称 */
 animation-name: move;
 /* 动画花费时长 */
 animation-duration: 2s;
 /* 动画速度曲线 */
 animation-timing-function: ease-in-out;
 /* 动画等待多长时间执行 */
 animation-delay: 2s;
 /* 规定动画播放次数 infinite: 无限循环 */
 animation-iteration-count: infinite;
 /* 是否逆行播放 */
 animation-direction: alternate;
 /* 动画结束之后的状态 */
 animation-fill-mode: forwards;
}

div:hover {
 /* 规定动画是否暂停或者播放 */
 animation-play-state: paused;
}

2.9.4「动画简写方式」

/* animation: 动画名称 持续时间 运动曲线 何时开始 播放次数 是否反方向 起始与结束状态 */
animation: name duration timing-function delay iteration-count direction fill-mode
  • 简写属性里面不包含 animation-paly-state

  • 暂停动画 animation-paly-state: paused; 经常和鼠标经过等其他配合使用

  • 要想动画走回来,而不是直接调回来:animation-direction: alternate

  • 盒子动画结束后,停在结束位置:animation-fill-mode: forwards

animation: move 2s linear 1s infinite alternate forwards;

2.9.5「速度曲线细节」

animation-timing-function: 规定动画的速度曲线,默认是

描述
linear 动画从头到尾的速度是相同的。匀速
ease 默认。动画以低速开始,然后加快,在结束前变慢。
ease-in 动画以低速开始。
ease-out 动画以低速结束。
ease-in-out 动画以低速开始和结束。
steps() 指定了时间函数中的间隔数量(步长)
/*打字机效果*/
div {
  0px;
 height: 50px;
 line-height: 50px;
 white-space: nowrap;
 overflow: hidden;
 background-color: aquamarine;
 animation: move 4s steps(24) forwards;
}

@keyframes move {
 0% {
    0px;
}

 100% {
    480px;
}
}

 

★紧急联系
邮箱:zhif6688@163.com
V  X: Zhif999999
原文地址:https://www.cnblogs.com/zhif97/p/14418806.html