如何用CSS3做过渡效果(transition)与动画(animation)
来源:广州中睿信息技术有限公司官网
发布时间:2012/10/21 23:25:16 编辑:admin 阅读 384
div.trans{width:100pxheight:100pxbackground:graytransition:width2s-moz-transition:width2s/*Firefox4
div.trans { width:100px; height:100px; background:gray; transition:width 2s; -moz-transition:width 2s; /* Firefox 4 */ -webkit-transition:width 2s; /* Safari and Chrome */ -o-transition:width 2s; /* Opera */ } div.trans:hover { width:300px; } div.ani { width:100px; height:100px; background:red; position:relative; animation:mymove 5s infinite; -moz-animation:mymove 5s infinite; /*Firefox*/ -webkit-animation:mymove 5s infinite; /*Safari and Chrome*/ } @keyframes mymove { from {left:0px;} to {left:200px;} } @-moz-keyframes mymove /*Firefox*/ { from {left:0px;} to {left:200px;} } @-webkit-keyframes mymove /*Safari and Chrome*/ { from {left:0px;} to {left:200px;} }

刚开始W3C CSS Workgroup拒绝将CSS3 transition与animation加入官方标准,一些成员认为过渡效果和动画并非样式属性,而且已经可以用脚本实现。所以请大家明白,特别是Web前端开发员,用CSS3做一些过渡效果和动画,并不比运用JS脚本实现要好(个人认为:用CSS只不过让不懂JS的人员(设计人员)也能做动画,而且使用浏览器封装好的方法,但使用JS脚本可以更灵活,在性能上也能去优化)。

1.Transition

Transition是一种直观上的效果,让DOM元素的某个属性在固定时间内从一旧值到一新值。目前Firefox、Opera、Safari和Chrome都支持transition ,IE还不支持。

语法:transition: property duration timing-function delay;

说明:

Value

Description

transition-property

指定要改变CSS属性的名称

transition-duration

指定过渡效果要花多少时间(s/ms)

transition-timing-function

指定过渡效果的速度

transition-delay

定义过渡效果的延迟时间.

实例:

  <style type="text/css">   div  {  width:100px;  height:100px;  background:red;  transition:width 2s;  -moz-transition:width 2s; /* Firefox 4 */  -webkit-transition:width 2s; /* Safari and Chrome */  -o-transition:width 2s; /* Opera */  }    div:hover  {  width:300px;  }  </style>  <div></div>
 

2. Animation

CSS动画(Animations)简单说就是在一段固定的动画时间内暗中在某一频率内改变其CSS某个或某些值,从而达到视觉上的转换动画效果。Animations的很多方面都是可以控制的,包括动画运行时间,开始值和结束值,还有动画的暂停和延迟其开始时间等。

目前支持Animation的浏览器有:Firefox、 Safari 和 Chrome,IE和Opera还不支持。下面看下一个简单的实例:

  <style type="text/css">   div  {  width:100px;  height:100px;  background:red;  position:relative;  animation:mymove 5s infinite;  -moz-animation:mymove 5s infinite; /*Firefox*/  -webkit-animation:mymove 5s infinite; /*Safari and Chrome*/  }  @keyframes mymove  {  from {left:0px;}  to {left:200px;}  }  @-moz-keyframes mymove /*Firefox*/  {  from {left:0px;}  to {left:200px;}  }
  @-webkit-keyframes mymove /*Safari and Chrome*/  {  from {left:0px;}  to {left:200px;}  }  </style>  <div></div>
 

语法:animation: name duration timing-function delay iteration-count direction;

说明:

Value

Description

animation-name

指定动画帧的名称

animation-duration

指定动画运行的时间:秒(s)和毫秒(ms)

animation-timing-function

指定动画运行的速度

animation-delay

指定动画的延迟时间

animation-iteration-count

指定动画的重复数

animation-direction

指定动画是否以相反的方向运行动画

 

联系我们CONTACT 扫一扫
愿景:成为最专业的软件研发服务领航者
中睿信息技术有限公司 广州•深圳 Tel:020-38931912 务实 Pragmatic
广州:广州市天河区翰景路1号金星大厦18层中睿信息 Fax:020-38931912 专业 Professional
深圳:深圳市福田区车公庙有色金属大厦509~510 Tel:0755-25855012 诚信 Integrity
所有权声明:PMI, PMP, Project Management Professional, PMI-ACP, PMI-PBA和PMBOK是项目管理协会(Project Management Institute, Inc.)的注册标志。
版权所有:广州中睿信息技术有限公司 粤ICP备13082838号-2