写多个物件css3循环动画案例原理

时间:2019-11-01 21:20来源:动画设计
在写h5页面中,大家兴许时时碰着要写过多css3动画,有未有同桌碰到七个物件生龙活虎律的动画片效果,循环境尊敬存一德一心呢,作者就时常碰到,从前一贯不知道在那之中的原理,

  在写h5页面中,大家兴许时时碰着要写过多css3动画,有未有同桌碰到七个物件生龙活虎律的动画片效果,循环境尊敬存一德一心呢,作者就时常碰到,从前一贯不知道在那之中的原理,只是简短的动员搬迁改改,不过遇到某个复杂多一点的就hold不住了,只好硬着头皮去分析内部的原理。那么接下去,让大家先看看案例,然后了然个中的法规

css3动画片循环案例

 案例朝气蓬勃:loading动画效果

图片 1

html代码:

<div class="spinner">
  <div class="rect1"></div>
  <div class="rect2"></div>
  <div class="rect3"></div>
  <div class="rect4"></div>
  <div class="rect5"></div>
</div>

css样式:

<style>
    .spinner {
  margin: 100px;
  width: 50px;
  height: 60px;
  text-align: center;
  font-size: 10px;
}

.spinner > div {
  background-color: #67CF22;
  height: 100%;
  width: 6px;
  display: inline-block;

  -webkit-animation: stretchdelay 1.2s infinite ease-in-out;
  animation: stretchdelay 1.2s infinite ease-in-out;
}

.spinner .rect2 {
  -webkit-animation-delay: -1.1s;
  animation-delay: -1.1s;
}

.spinner .rect3 {
  -webkit-animation-delay: -1.0s;
  animation-delay: -1.0s;
}

.spinner .rect4 {
  -webkit-animation-delay: -0.9s;
  animation-delay: -0.9s;
}

.spinner .rect5 {
  -webkit-animation-delay: -0.8s;
  animation-delay: -0.8s;
}

@-webkit-keyframes stretchdelay {
  0%, 40%, 100% { -webkit-transform: scaleY(0.4) }  
  20% { -webkit-transform: scaleY(1.0) }
}

@keyframes stretchdelay {
  0%, 40%, 100% { 
    transform: scaleY(0.4);
    -webkit-transform: scaleY(0.4);
  }  20% { 
    transform: scaleY(1.0);
    -webkit-transform: scaleY(1.0);
  }
}
</style>

案例二:圆形放大或减弱的loading效果

图片 2

html代码:

<div class="spinner">
  <div class="double-bounce1"></div>
  <div class="double-bounce2"></div>
</div>

css样式:

.spinner {
  width: 60px;
  height: 60px;

  position: relative;
  margin: 100px;
}

.double-bounce1, .double-bounce2 {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background-color: #67CF22;
  opacity: 0.6;
  position: absolute;
  top: 0;
  left: 0;

  -webkit-animation: bounce 2.0s infinite ease-in-out;
  animation: bounce 2.0s infinite ease-in-out;
}

.double-bounce2 {
  -webkit-animation-delay: -1.0s;
  animation-delay: -1.0s;
}

@-webkit-keyframes bounce {
  0%, 100% { -webkit-transform: scale(0.0) }
  50% { -webkit-transform: scale(1.0) }
}

@keyframes bounce {
  0%, 100% { 
    transform: scale(0.0);
    -webkit-transform: scale(0.0);
  } 50% { 
    transform: scale(1.0);
    -webkit-transform: scale(1.0);
  }
}

  

  看了下边包车型地铁多少个案例,大家领略了何等是四个物件循环动画,也能够领略,通过animation-delay延迟,大家得以让七个物体保持国无宁日的活动成效,但是看了动画和延缓却依旧不了然怎么设置,大概你会诬捏物体运转的帧,确实作者解析的时候也是如此想的。

 

css3动画片循环规律

  要讲精晓那几个,大家得先知道多少个票房价值(参数),animation动画持续时间t1,各类物体延迟时间差t2,物体个数n

  t2 = t1/n

  平均关键帧的百分比为 百分之百/n

  把上述的那多少个点,驾驭驾驭了后来,其实大家理应就了然了怎么去写多少个物体循环了,举个例证:

html代码:

      <ul>
          <li class="on1"></li>
          <li class="on2"></li>
          <li class="on3"></li>
          <li class="on4"></li>
          <li class="on5"></li>
          <li class="on6"></li>
      </ul>

css代码:

        ul{list-style:none;padding:0;margin:0;}
        ul>li{
            width:50px;
            height:50px;
            margin-bottom:20px;
            background:orange;
            -webkit-animation:scale 3s linear infinite;
        }
        .on2{
            -webkit-animation-delay:0.5s;
        }
        .on3{
            -webkit-animation-delay:1s;
        }
        .on4{
            -webkit-animation-delay:1.5s;
        }
        .on5{
            -webkit-animation-delay:2s;
        }
        .on6{
            -webkit-animation-delay:2.5s;
        }
        @-webkit-keyframes scale{
            0%,33.4%{width:50px;height:50px;}
            16.7%{width:80px;height:80px;}
        }

  这一个事例其实是6个物体循环的卡通,大家决定在历次百分之百/6的点做差异物体变化功效就行了,即16.7%、33.4%、50.1%、66.8%、83.5、100.2%(这里由于不整除,多出了大器晚成有的,就当肖似于)

  并且,大家想一上马就见到成分开首动,那么大家就要将这16.7%置于,则得出了

      @-webkit-keyframes scale{
            0%,33.4%{width:50px;height:50px;}
            16.7%{width:80px;height:80px;}
        }

  最终大概亦不是讲的很驾驭,还请不知道的多做多少个例证,多酌量就通了,共勉。

 

  课外知识:

  CSS3 animation-direction 属性

概念和用法

animation-direction 属性定义是还是不是合宜轮流反向播放动画。

只要 animation-direction 值是 "alternate",则动画会在奇数11回数(1、3、5 等等)不奇怪播放,而在偶数13次数(2、4、6 等等)向后播放。

批注:倘诺把动画设置为只播放贰次,则该属性未有效率。

默认值: normal
继承性: no
版本: CSS3
JavaScript 语法: object.style.animationDirection="alternate"

语法

animation-direction: normal|alternate;
描述 测试
normal 默认值。动画应该正常播放。 测试
alternate 动画应该轮流反向播放。 测试

用CSS代码的方法表示,就是:
单向循环: animation-iteration-count: infinite; animation-direction: normal;
双向循环: animation-iteration-count: infinite; animation-direction: alternate;

 

  留多少个关于css3动画写的可比好的篇章:

    经验分享:多屏复杂动画CSS工夫三则

    涨姿势!CSS3动画帧数科学总结法

    【原】移动web动画设计的一点体验——css3落到实处跑步

  

 

 

编辑:动画设计 本文来源:写多个物件css3循环动画案例原理

关键词: