具体例子
代码如下 | 复制代码 |
img{ height:15px; width:15px; } img:hover{ |
transition的作用在于,指定状态变化所需要的时间。
代码如下 | 复制代码 |
img{ transition: 1s; } |
我们还可以指定transition适用的属性,比如只适用于height。
代码如下 | 复制代码 |
img{ transition: 1s height; } |
这样一来,只有height的变化需要1秒实现,其他变化(主要是width)依然瞬间实现~
例子
代码如下 | 复制代码 |
<nav> <ul id="main-nav"> <li><a href=http://www.111cn.net>HOME</a></li> <li><a href="#">a</a></li> <li><a href="#">b</a></li> <li><a href="#">c</a></li> </ul> </nav> 怎么来实现这个功能呢? #main-nav a{ |
· transition的使用注意
(1)目前,各大浏览器(包括IE 10)都已经支持无前缀的transition,所以transition已经可以很安全地不加浏览器前缀。
(2)不是所有的CSS属性都支持transition,完整的列表查看这里,以及具体的效果。
(3)transition需要明确知道,开始状态和结束状态的具体数值,才能计算出中间状态。比如,height从0px变化到100px,transition可以算出中间状态。但是,transition没法算出0px到auto的中间状态,也就是说,如果开始或结束的设置是height: auto,那么就不会产生动画效果。类似的情况还有,display: none到block,background: url(foo.jpg)到url(bar.jpg)等等。
· transition的局限
transition的优点在于简单易用,但是它有几个很大的局限。
(1)transition需要事件触发,所以没法在网页加载时自动发生。
(2)transition是一次性的,不能重复发生,除非一再触发。
(3)transition只能定义开始状态和结束状态,不能定义中间状态,也就是说只有两个状态。
(4)一条transition规则,只能定义一个属性的变化,不能涉及多个属性。
CSS Animation就是为了解决这些问题而提出的。