纯CSS实现倒计时动画

OK,CSS3演武场今天继续,我们重点来看看css3 animation实现逐帧动画,额,按照惯例,看效果点这里,下载戳这里

实现原理

a.外盒子div.cell,一个字的宽和高,超过不显示,确保只能显示一个字。

b.内盒子div.num,一个字的宽,行高一个字高,我们通过这个盒子的移动实现动画。

c.内盒子的移动动画的animation-timing-function使用step

d.倒计时结束,外盒子动画消失掉

实现过程

好的,来看看实现过程,html文件是这样的,中文的倒计时也可以,不过中文的网络字体太少,所以没弄,感兴趣的同学可以弄起来。

<div class="cell">
  <div class="num">5 4 3 2 1 0</div>
  <!--<div class="num">五 四 三 二 一 零</div>-->
</div>
CSS部分使用prefix free和normailize,另外为了实现英文字体,我们用了google字体,你需要导入这个文件

http://fonts.googleapis.com/css?family=Allura|Frijole|Varela+Round

body{
  background:#333;
}
.cell{
    width: 1em;  
    height: 1em;
    border:1px dashed rgba(255,255,255,0.1);
    font-size:120px;
    font-family:Frijole;
    overflow: hidden;
    position:absolute;
    top:50%;
    left:50%;
    margin:-0.5em 0 0  -0.5em;
    opacity:0;
    animation:go 6s;
    transform-origin:left bottom;
}
.num{
    position:absolute;
    width: 1em;
    color:#E53F39;
    line-height: 1em;  
    text-align: center;
    text-shadow:1px 1px 2px rgba(255,255,255,.3);
    animation:run 6s steps(6);
}
@keyframes run{
    0%{top:0;}
    100%{top:-6em;}
}
@keyframes go{
  0%   {opacity:1;}
  84%  {opacity:1;transform:rotate(0deg) scale(1);}
  100% {opacity:0;transform:rotate(360deg) scale(.01);}
}
嗯,完工!

---------------------------------------------------------------

前端开发whqet,关注web前端开发技术,分享网页相关资源。
---------------------------------------------------------------

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。