展会信息港展会大全

CSS中利用Transition实现动画效果
来源:互联网   发布日期:2016-03-25 16:26:34   浏览:2521次  

导读:在CSS 3引入Transition(过渡)这个概念之前,CSS是没有时间轴的。也就是说,所有的状态变化,都是即时完成。例如在以前当鼠标放置于缩略图之上,缩略图会迅速变大。注意,缩略图的变大是瞬间...

在CSS 3引入Transition(过渡)这个概念之前,CSS是没有时间轴的。也就是说,所有的状态变化,都是即时完成。例如在以前当鼠标放置于缩略图之上,缩略图会迅速变大。注意,缩略图的变大是瞬间实现的。下面是代码,相当简单。

具体例子

代码如下

复制代码

img{

height:15px;

width:15px;

}

img:hover{

height: 450px;

width: 450px;

}

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{

opacity: 1;

-webkit-transition: opacity 0.3s;

-moz-transition: opacity 0.3s;

-webkit-animation-timing-function: ease-out;

-moz-animation-timing-function: ease-out;

}

#main-nav a:hover{

opacity: 0.5; }

· 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就是为了解决这些问题而提出的。

赞助本站

人工智能实验室

相关热词: 开发 编程 android

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港