随着CSS3越来越热,CSS3动画也逐渐受到大家的关注。这次有幸修改淘宝网全站页头,小小地应用了下(详见http://www.taobao.com/下拉箭头处的hover效果)。与其说是渐进增强,不如说是满足了技术人小小的虚荣心。
以下是自己的一点理解,希望能对大家有所帮助。
…
关于CSS3动画从(http://www.w3.org/Style/CSS/current-work)可以看出,CSS动画涉及的知识点包括 CSS 2D transformations,CSS 3D transformations,CSS Transitions,CSS Animations。
transformation 补充定义了wIDth,height,left,top等之外的一些可用于实现动画的属性,如rotate,scale,skew。
Transition 和 Animation 用于定义动画的过程。其中Transition 可以实现简单的动画;Animation则可以通过设定多个关键帧实现相对复杂的动画。
…
Can I Use? 兼容性(数据来自http://caniuse.com/)
IE | firefox | Safari | Chrome | Opera | |
---|---|---|---|---|---|
CSS 2D transform | no | 3.5 | 3.2 | 2.0 | 10.5 |
CSS 3D transform | no | no | 4.* (Mac) | no | no |
CSS Transition | no | 3.7 | 3.2 | 2.0 | 10.5 |
CSS Animation | no | no | 4.0 | 2.0 | no |
可以看到,CSS Animation只有Safari支持,目前只能自己玩玩;而Transition用来做渐进增强则较为合适。
…
一个简单的例子需求:让一个div元素在鼠标移上去时变大1倍,旋转180度,且背景由红变蓝。
HTML code::
<div></div>
CSS code::
div { position: absolute; left: 100px; top: 100px; wIDth: 100px; height: 100px; background: red; /* 定义动画的过程 */ -webkit-Transition: -webkit-transform .5s ease-in,background .5s ease-in; -moz-Transition: -moz-transform .5s ease-in,background .5s ease-in; -o-Transition: -o-transform .5s ease-in,background .5s ease-in; Transition: transform .5s ease-in,background .5s ease-in;}div:hover { /* 定义动画的状态 */ -webkit-transform: rotate(180deg) scale(2); -moz-transform: rotate(180deg) scale(2); -o-transform: rotate(180deg) scale(2); -transform: rotate(180deg) scale(2); background: blue;}
demo (http://fiddle.Jshell.net/NVErB/show/light/) (no IE)
…
无奈的浏览器前缀这是个令人非常痛苦的问题,因为不得不针对每个浏览器copy一遍重复代码。
值得注意的是无前缀的标准代码需放在最后。假如几年后某个属性成为标准,被浏览器默认支持了,这行代码会覆盖前面的定义,使得浏览器可以优先使用他。
…
稍微复杂点的例子(CSS3 animation)需求:让一个div元素在点击后变大1倍,旋转180度,且背景由红变蓝;然后向右移动400px。
源码请查看demo源文件。
demo (http://fiddle.Jshell.net/a4r94/show/light/) (Safari,Chrome only)
…
惊艳!CSS 3D transformations见live demo (http://www.satine.org/research/webkit/sNowleopard/sNowstack.HTML) (Mac Safari Only,类似于http://www.cooliris.com/的效果),没Mac的可以到(http://www.satine.org/archives/2009/07/11/sNow-stack-is-here/)看视频演示。
PS: Mac Safari的3D transform、2D transform和Opacity等视觉效果都是跑在GPU上的,为此我还特地验证下了Win Safari,果然不支持。
…
相关资料webkit blog介绍animation/2d transforms/3d transforms的三篇文章
http://webkit.org/blog/138/css-animation/
http://webkit.org/blog/130/css-transforms/
http://webkit.org/blog/386/3d-transforms/
W3组织的CSS规范集
http://www.w3.org/Style/CSS/current-work
苹果官方关于CSS视觉效果的文档
http://developer.apple.com/safari/library/documentation/InternetWeb/Conceptual/SafariVisualEffectsProgGuIDe/Introduction/Introduction.HTML
CSS animation的兼容性数据来源
http://caniuse.com/
3d transform的运用app
http://www.satine.org/research/webkit/sNowleopard/sNowstack.HTML
http://css-vfx.Googlecode.com/svn/trunk/examples/zflow.HTML
http://www.fofronline.com/experiments/cube-3d/
CSS3动画的应用
http://www.webdesignerwall.com/trends/47-amazing-CSS3-animation-demos/
http://www.optimum7.com/internet-marketing/web-development/pure-CSS3-spIDerman-ipad-cartoon-jquery-HTML5-no-flash.HTML
CSS3 animation的入门应用:钟的实现
http://g-zone.org/test/g-clock/index.HTML
…
完
出处:http://ued.taobao.com/blog/2010/05/05/CSS3-animation/
总结以上是内存溢出为你收集整理的闲谈CSS3动画全部内容,希望文章能够帮你解决闲谈CSS3动画所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)