transition的唧唧歪歪

transition是css3新出的一个属性,大白话叫做过渡。

主要有下面这四个属性:

transition-propertytransition-durationtransition-timing-functiontransition-delay(我做了四个预览效果,点击可查看)

大白话分别是,需要过渡的属性,所用时间,时间曲线(或者说过渡速度?),还有最后的就叫做延迟。

注意:Internet Explorer 10, Firefox, Opera, Chrome, 和Opera 支持transition 属性。Safari 需要前缀 -webkit-。Internet Explorer 9 以及更早的版本,不支持 transition 属性。Chrome 25 以及更早的版本,需要前缀 -webkit-

好了,咱们来一个一个说。首先是transition-property这个,它规定的是过渡属性的名称,比如宽度(width)、颜色(color)等等,也可以是所有(all),甚至是没有(none);

transition-property效果如下:

过渡的是宽度
过渡的是背景颜色

然后说这个所用时间transition-duration,单位可以是秒(s),也可以是毫秒(ms);

transition-duration效果如下:

过渡1秒
过渡5秒

时间曲线transition-timing-function这个属性是很奇妙的一个属性,它涉及到一个“贝塞尔曲线(cubic-bezier)“的概念,在这用张图给大家说一下:

transition的唧唧歪歪

这张图就是贝塞尔曲线(黑长粗),横向是时间,纵向是完成度,图中有四个点P0、P1、P2、P3,P0和P3是固定的点,P1和P2是可操作的点,设置的四个数值前两个是P1的坐标,后两个是P2的坐标,四个值的需是0~1之间(包括0和1),然后生成的这个贝塞尔曲线就是时间曲线了。

注:时间曲线有几个首选值,分别是:

  • linear:线性过渡。等同于贝塞尔曲线(0.0, 0.0, 1.0, 1.0)
  • ease:平滑过渡。等同于贝塞尔曲线(0.25, 0.1, 0.25, 1.0)
  • ease-in:由慢到快。等同于贝塞尔曲线(0.42, 0, 1.0, 1.0)
  • ease-out:由快到慢。等同于贝塞尔曲线(0, 0, 0.58, 1.0)
  • ease-in-out:由慢到快再到慢。等同于贝塞尔曲线(0.42, 0, 0.58, 1.0)

这里还有一个特殊属性:steps,格式是这样的:

steps(<integer>[,[start|end]]) —— 这个属性写出来是这样:

transition-timing-function: steps(3, start);

还有这样:

transition-timing-function: steps(3, end);

简单来说这个效果类似于蹦蹦跳跳的完成过渡,第一个数字是说跳几次,第二个参数是说在何时跳,具体还是看效果吧,我嘴笨……

transition-timing-function效果如下:

贝塞尔曲线1,0,0,1
贝塞尔曲线0,1,1,0
steps(3, start)
steps(3, end)

最后一个是延迟transition-delay,就是多久之后开始,默认是0,单位是秒(s)或者毫秒(ms)。

transition-delay效果如下:

2秒延迟
无延迟

所有案例文件在

效果集合在

上一篇:Atitit 知识图谱解决方案:提供完整知识体系架构的搜索与知识结果overview


下一篇:java常量池存放在哪里