你的位置:首页 > 网页设计

[网页设计]学习CSS3动画(animation)


  CSS3就是出了不少高大上的功能,3D效果、动画、多列等等。今天写篇文章记录怎么一下怎么用CSS3写一个动画。

     丑话还得说前头,IE9以及以下版本不支持CSS3动画(如真要实现可以考虑用js,不过估计效果也不太好)。chrome和safafi建议加上前缀-webkit-以向前兼容老版本。

    今天简单的做一个动画。

      首先,先简单画一个div,然后添上背景图片。

<body>  <div class="demo">    我是demo  </div></body>

.demo{  width: 120px;  height: 120px;  margin: 100px auto;  background: url(img/demo.jpg) no-repeat;}

一个普通的DIV就出来了 如右:

接着我们让它动起来

先写一个方法,这个方法描述这个图片该如何运动

@keyframes run_animation{     from {    transform: rotatez(0deg);  }  to {    transform: rotatez(360deg);  }}

这个animation_run就是这个方法的名字。等下需要把名字关联到相关的元素里。

from是描述动画的起始状态,to是动画的结束状态。

所以这个方法就是让一个元素按顺时针方向转动360度,非常简单。

from to往往不能满足我们日常开发所需,所以还有这种写法

@keyframes run_animation{  0%{
     transform:rotatex(0deg);
   } 16%{ transform: rotatey(-90deg); } 33%{ transform: rotatey(-90deg) rotatez(135deg); } 50%{ transform: rotatey(225deg) rotatez(135deg); } 66%{ transform: rotatey(135deg) rotatex(135deg); } 83%{ transform: rotatex(135deg); }
  100%{
     transform: rotatex(0deg);
  }}

这种描述让动画可以有更加丰富炫酷的动作。通过百分比来描述每个阶段该元素的动态,0%就是上面说的from,100%就是to。其实这个也很简单对吧~

动画就这么容易的写好了。接下来我们把动画关联到我们的图片上。

.demo{  width: 120px;  height: 120px;  margin: 100px auto;  animation: run_animation 12s linear infinite; /*关联动画名称,定义动画时长,动画播放速度曲线,播放次数*/  background: url(img/demo.jpg) no-repeat 100%;}

就是这么简单一句代码,图片就能按照我们定义的方法动起来了。

    

要是你现在发现动画没有动,那可能是下面的原因之一:

1.动画名称与@keyframes定义的名称不符;

2.没有定义动画播放时长,默认是0S,即不播放动画。上述代码定义12S;

3.在IE9及以下浏览器运行该代码,IE9及以下不支持CSS3 animation;

4.动画方法定义不对,方法定义的每个阶段中样式都是一样的。像下面这样

@keyframes run_animation{  0%{    transform: rotatez(90deg);  }  50%{    transform: rotatez(90deg);  }  100%{    transform: rotatez(90deg);  }}

好了,这时候动画应该是动起来了。接着说动画中别的选项:

1.animation-iteration-count:  动画播放次数,想播放几次就写几。我这里用了无限次就是infinite

2.animation-timing-function:动画速度曲线。这个速度曲线有点复杂,涉及到一个贝塞尔函数。不想深入探索贝塞尔就直接用现成的linear、ease、ease-in、ease-out、ease-in-out。要是你懂贝塞尔,可以用cubic-bezier(n,n,n,n),这个比较高大上,我觉得是装逼界的利器。

3.animation-delay:动画可以延时播放,参数也是n S。和animation-duration不一样,animation-duration是动画播放时长。

上面几个属性都可以简写到animation中,就像我上面的栗子一样。

还有逆向播放、暂停这些属性就不说了,有需要可以去看http://www.w3school.com.cn/css3/css3_animation.asp或者

https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Animations/Using_CSS_animations

如果还有什么疑问或者建议,可以多多交流,原创文章,文笔有限,才疏学浅,文中若有不正之处,万望告知 ending~

 




办理日本旅游签证跟团日本旅游需要多少钱几月份去日本旅游最好什么时候去日本旅游最便宜去日本旅游跟团要多少钱大理崇圣寺三塔怎么去?路线都有哪些? 稻城亚丁特产都有哪些? 茵特拉根小镇2015有什么好玩的?茵特拉根小镇门票最新价格? 广州2015元旦旅游有哪些好玩地方?元旦广州去哪玩? 顺德李小龙故居门票多少钱?李小龙故居门票网上可以预订吗? 顺德李小龙故居地址?李小龙故居坐车怎么去? 李小龙纪念馆在顺德均安什么地方?均安李小龙纪念馆在哪里? 广东中山坦洲伊泰莲娜怎么去?中山伊泰莲娜具体位置? 韶关云门峡漂流团购价格?云门峡漂流便宜门票怎么买? 云门峡漂流电话?韶关云门峡漂流时间? 河源万绿谷漂流终点有车接送吗?万绿谷漂流车费多少钱? 万绿谷漂流时间?河源万绿谷漂流下午几点开始? 金庸笔下的襄阳城_金庸武侠旅游地图_带着金庸小说去旅游 雪景拍摄_冬季雪景拍摄技巧_拍摄雪景注意事项 伦敦一完美日游_伦敦十大必去旅游景点 非洲古老文化之旅_非洲逐渐消失的非洲婚俗 MA04-1204Q7NC Datasheet MA04-1204Q7NC Datasheet MA04-1204Q7YC Datasheet MA04-1204Q7YC Datasheet MA04-1204QBC Datasheet MA04-1204QBC Datasheet 万佛湖钓鱼 万佛湖钓鱼 万佛湖钓鱼 深圳青青世界好玩吗 深圳青青世界好玩吗 深圳青青世界好玩吗 鲍威尔湖 鲍威尔湖 鲍威尔湖