CSS3实践之路(六):CSS3的过渡效果(transition)与动画(animation)
2011-11-21 10:30
971 查看
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; 说明:
实例:
2. Animation
CSS动画(Animations)简单说就是在一段固定的动画时间内暗中在某一频率内改变其CSS某个或某些值,从而达到视觉上的转换动画效果。Animations的很多方面都是可以控制的,包括动画运行时间,开始值和结束值,还有动画的暂停和延迟其开始时间等。
目前支持Animation的浏览器有:Firefox、 Safari 和 Chrome,IE和Opera还不支持。下面看下一个简单的实例:
语法:animation: name duration timing-function delay iteration-count direction;
说明:
接下来和大家分享一个webkit.org上面的一个DEMO,此DEMO利用Transform和Animation,加少量Javascript做成的3D动画效果,有兴趣的同学可去参考以下网址:http://www.webkit.org/blog-files/3d-transforms/poster-circle.html。只可惜只有webkit内核的浏览器才能看到相关3D动画效果。
{
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 | 指定动画是否以相反的方向运行动画 |
相关文章推荐
- CSS3实践之路(六):CSS3的过渡效果(transition)与动画(animation)
- CSS3实践之路(六):CSS3的过渡效果(transition)与动画(animation)
- CSS3实践之路(三):CSS3的转换效果(transition)与动画(animation)
- CSS3的过渡效果(transition)与动画(animation)
- CSS3的过渡效果(transition)与动画(animation)
- CSS3的过渡效果(transition)与动画(animation)
- 不要忘了css3动画效果transform 和过渡效果 transition:属性 时间 运动效果 延迟时间;
- 【CSS3】transition过渡和animation动画
- CSS3的变形transform、过渡transition、动画animation学习
- 【CSS3】transition过渡和animation动画
- 【CSS3】transition过渡和animation动画
- 【CSS3】transition过渡和animation动画
- css3新属性:过渡transition,变换transform(2D,3D),动画animation
- css3_实现动画设置其过渡过程中的效果_transition
- CSS的过渡效果及动画效果:transition&animation
- 制作动画平滑过渡效果:《CSS3 Transition》
- CSS3 如何让height:auto实现transition过渡效果
- CSS3中和动画有关的属性有三个 transform、 transition 和 animation
- Vue2.0过渡动画效果transition
- Html5的CSS3的transition实现简单动画效果