CSS3:Transition属性详解
分类:HTML5、CSS3 发表时间:2011年04月20日 字体大小:12号14号
因博客服务器瘫痪,上周的所有数据丢失。该文为恢复后补发。
暂时不做HTML5读书笔记的更新,下一篇再继续。临时性地插入CSS3新属性的详细介绍,以便可以和HTML5的知识结合起来合理应用,这样达到两者配合。
Transition属性主要是用来对某个CSS属性的变化过程进行控制,官方的介绍是”CSS Transitions allow property changes in CSS values to occur smoothly over a specified duration.“。而我个人则简单地理解为”在某个时间段内,平滑地改变某个CSS属性。“。
Transition又包含了四个子属性,分别为property、duration、timing-function、delay。下面来一一介绍,在最后会给出一个简单的实例和使用方法说明。
1. transition-property:
property针对了当前选择器的某个css属性进行设置。比如我要过渡一个背景色时,则设置property值为background。
2. transition-duration:
duration针对了过渡效果的持续时间。
3. transition-timing-function:
timing-function算是Transition属性中最为复杂的一个了。它针对了过渡效果的特效,有多种特效展示。这里得涉及到一个学术性的话题:貝茲曲線。说实话,我也没搞的太明白,但W3C给出了一张曲线图,一看就明白了(后附图)。
ease: cubic-bezier(0.25, 0.1, 0.25, 1.0)
linear: cubic-bezier(0.0, 0.0, 1.0, 1.0)
ease-in: cubic-bezier(0.42, 0, 1.0, 1.0)
ease-out: cubic-bezier(0, 0, 0.58, 1.0)
ease-in-out: cubic-bezier(0.42, 0, 0.58, 1.0)
cubic-bezier(x1, y1, x2, y2) 为自定义,x1,x2,y1,y2的值范围在[0, 1]
其中的cubic-bezier即为貝茲曲線中的绘制方法。先来看图:
图上有四点,P0-3,其中P0、P3是默认的点,对应了[0,0], [1,1]。而剩下的P1、P2两点则是我们通过cubic-bezier()自定义的。参考阅读:
W3C: http://www.w3.org/TR/css3-transitions/#transition-timing-function_tag
貝茲曲線:http://zh.wikipedia.org/wiki/%E8%B2%9D%E8%8C%B2%E6%9B%B2%E7%B7%9A
4. transition-delay:
duration针对了过渡效果的延迟执行时间。
5. 代码演示:
- 1). 过渡单个属性:
-
1 2 3 4
transition-property:opacity; transition-duration:2s; transition-timing-function:ease-in; transition-delay:0;
- 2). 过渡多个属性:
-
- [1]. 上下一一对应型:
-
1 2 3 4
transition-property:opacity left; transition-duration:2s, 4s; transition-timing-function:ease-in; transition-delay:0;
此时:opacity过渡时间为2s,left过渡时间为4s。
- [2]. 循环对应型:
-
1 2 3 4
transition-property:opacity left width height; transition-duration:2s, 4s; transition-timing-function:ease-in; transition-delay:0;
此时:opacity和width过渡时间为2s,left和height过渡时间为4s。
- 3). transition简写模式:
- 顺序为:transition-property transition-duration transition-timing-function transition-delay
1 2 3 4
/*单个属性:*/ -moz-transition:background 0.5s ease-out 0s; /*多个属性:*/ -moz-transition:background, 0.5s ease-out 0s, color 0.4 ease-out 0s;
6. 实例展示:
请用火狐打开,暂没添加其他浏览器支持。有兴趣的可以到Demo页面,下了源代码自行添加后测试。也可以查看我的头部导航,也用到了Transition的效果。
1 | <a href="http://www.ihiro.org/" target="_blank">ihiro.org</a> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <a href="http://www.ihiro.org/" target="_blank">ihiro.org</a> a { display:block; width:160px; height:30px; line-height:30px; text-align:center; padding:10px; background:#33589f; color:#fff; text-decoration:none; text-transform:uppercase; /*只有当鼠标移出后才处理*/ -moz-transition:background 0.2s linear 0s; } a:hover { background:#263c7b; color:#f60; text-shadow:2px 2px 10px #f00; /* 只有当鼠标移入时才处理 注:若a:hover中不写transition,则会继承a中的transition */ /* 1. 单个属性 -moz-transition:background 0.5s ease-out 0s; 2. 多个属性: -moz-transition:background, 0.5s ease-out 0s, color 0.4 ease-out 0s; */ -moz-transition:background 0.5s ease-out, color 0.4s ease-out, text-shadow 0.3s linear; } |
更多的Transition相关请阅读:http://www.w3.org/TR/css3-transitions/
貌似抢到了沙发······哈哈!谢谢楼主!我会刻苦学习的!
给力
这是一篇数据丢失后恢复的文章,可惜了之前的近20条评论。
说的很好 学习了
楼主真是好,若是丢失了的东西,一般人不会那么好心再发过的·····呵呵!
很给力 继续加油
原创就是心血,服务器瘫痪又能怎么样?
没了再发出来嘛,订阅里有记录的。
呵呵!温州团购说的是,要坚持原创!
加油
学习了,加油。不过还是建议博主做好定期备份,
每周都有备份的,所以服务器一瘫痪的话,就会少了该周的记录,只能用上周的。
开来博主是每周定期备份。我用了个插件,是定时发备份到邮箱。。。 以后不能用ie了,看不到效果
我也是用的插件备份的,但只是备份了数据库,服务器上的文件是没有备份的。
文件丢失了怎么办?特别是图片?
来啦 依然是支持原创的
css3属性貌似有点复杂啊
看不懂Css但来了帮你顶一下哈哈
说的很好 学习了
说的很好 学习了
看看代码在说哈
来看看 了 呵呵
看的不是很懂,只是学习了
一定是牛人
看不懂哦,来看看的
博客做起真的是不怎么容易
希望能与博主建立讲好的关系,以后多多交流!!!
对了,你的博客做的很好。
很详细,很实用!
加油
博主
不错啊··牛啊
说的精辟,谢谢博主分享,辛苦了……
支持你啊楼主
我的爱好之一就是看博客,每天基本上要看100篇博客,一般是不怎么回复的,可是看到博主的文章我不得不回,我只想说一句话:“博主你的文章是我见过写的最好的了!
很全面 很详细额.!博主你辛苦了.!感谢分享.,!受教了
进来看看,感受一下再走
进来瞅瞅,顶一个
很好很专业
等待新的文章
来坐坐,随便顶一个呵呵
路过,顶一个
备份很重要啊!!!
有备份,但只能是前一周的
博客很给力
说的很好,学习了,谢谢博主分享!
看的不是很懂 但一定有用·~~
想向博主咨询一下关于前端方面的东西.
发现我对网页这些东西很感兴趣,于是我有一种想要 向这方面发展的冲动.
想了几天了,仍然想不出一个 不要这个干的理由,
自我感觉对 代码比较敏感 也喜欢对一些东西尝试着修修改改 看效果
虽然不是精通,但是喜欢,
现在已经大二结束了.不知道我现在想开始学习这方面的东西会不会迟了.?
对最一般的html标签,最初级的css等等都知道点,都是平常胡乱鼓捣学到的.
js嘛,原生的不是很懂,jquery了解了点,看了一本 锋利的jquery
学过C和C++ 但是只限于教材.
所以请博主指点一下.
如果想要做这方面的工作,该怎么办? 合适不合适?
我感觉我的恒心和毅力 还是过得去的.兴趣之内的东西.应该能够长久的坚持
多看,多写,多折腾!!
博客的技术文章写得真不错。 在页面中没有找到联系方式,在这里冒昧申请友情链接: CSS9.NET. http://css9.net。 你的链接我已经加上。
你的链接已经添加,谢谢关注。多多交流!!
看来又是一个悲剧了
希望能 全部恢复呢,真悲剧
楼主杯具了,应该及时做好备份,说到这里我的也应该去备份一下
好东西~给力啊!
嘿嘿,发现你首页的图片特效很不错
哎呀 看不懂 哈哈
CSS还有这种效果?真是越来越强了
博客辛苦了,很欣赏能够坚持写博客的人,把自己的知识与别人分享,我已经把贵站收藏了。希望贵站越来越好,
谢谢楼主!我会刻苦学习的!
问下博主,首页文章图片转动是怎么弄的呢?
CSS3的transform样式属性…
留言是种美德,写点什么
logo呢
踩踩,支持支持~
厉害,受教了!
每一篇用心血灌溉出的博文,都需要受到每一位博友的关注。请关注:http://www.nbbaijie.com 家电控制板
来转转地 留脚印http://www.nblipin.net/
我是第一次来哦
恩 支持博主
CSS3接触得还不多,学习了,谢谢博主的教程,很详细,阅读体验也很不错。
慢慢学习,没基础,有点看不懂
新手来学习,请多多指教。
CSS3是很强大,我也接触了一些,但是国内兼容CSS3的浏览器实在是。。。
希望web标准化能早日实现。
好久没来了,前段时间一直在忙,今天终于有时间来看下,顺祝国庆快乐,呵呵!
新手来学习一下,顶一个
css3现在ie支持还是不好啊,不知道国内啥时候能普及
不错 至此已个
人人都在说css3,人人都在说html5,
好给力呀, 这篇文章。
真给力啊 学习了
你也是很久没有更新咯
挺好的学习啦
学习了,好久没有拿起CSS了。