CSS3中动画效果Transitions与Animations的区别

在CSS3中,如果我们使用动画功能,可以使页面上的文字或图像具有动画效果,可以使我们的页面更加生动具有吸引力。 在CSS3中我们可使用的动画功能有两种,Transitions与Animations。下面我们来看看它们两者的区别。

首先来看Transitions功能,它的属性有:

transition-property :指定需要平滑过渡的属性

transition-duration :设定平滑过渡使用的时间

transition-timing-function :设定平滑过渡使用的方法

transition-delay :设置平滑过渡开始前的延迟时间

在一行样式代码中定义transitions动画时可以写成 transition :property   duration   timing-function   delay;

下面将实现一个简单的效果,将一个div的宽在鼠标移入后1s内从宽100px变成200px,背景色从黄色平滑过渡到浅蓝色,延迟时间为2s,代码清单如下:

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml/DTD/xhtml1-transitional.dtd">
 2 <html>
 3 <head>
 4 <meta charset="utf-8" content="text/html" http-equiv="content-type">
 5 <title></title>
 6 <style type="text/css">
 7
 8     div {
 9         width: 100px;
10         height: 100px;
11         background: #ffff00;
12         transition: width 1s linear 2s,background-color 1s linear 2s;
13     }
14     div:hover{
15         width: 200px;
16         background-color: #003366;
17     }
18
19 </style>
20 </head>
21 <body>
22    <div>示例</div>
23 </body>
24 </html>

接下来是Animations功能,它的用法:首先我们需要创建关键帧的集合 @keyframes 关键帧集合名{ 创建关键帧的代码(如40% { 本关键帧中的样式代码 }) } ,我们创建好关键帧后需要在元素的样式中使用该关键帧的集合,如何使用呢?

下面是我们可以使用的属性:

animation-name : 指定我们使用的关键帧集合的名字

animation-duration :指定完成动画需要花费的时间

animation-timing-function : 指定实现动画的方法,可指定的属性为linear(动画开始与结束以同样的速度进行改变)、ease-in(先慢后快)、ease-out(先快后慢)、ease(先慢后快再慢)、ease-in-out(跟ease一样)

animation-delay : 指定延迟多少秒或毫秒开始执行动画

animation-iteration-count : 指定动画执行的次数(可指定为infinite即无限次)

animation-direction : 指定动画的执行方向,可指定的属性值为normal(初始值即动画完毕后回到初始状态)、alternate(交替更改执行的方向)、reverse(反方向执行动画)、alertnate-reverse(反方向开始交替执行动画)

在一行代码中定义animations动画可以写成 animation :keyframe的集合名称   duration   timing-function    delay    iteration-count direction;

下面实现一个简单的示例,将一个div完成四个背景色的平滑过渡,而且在背景色为黄色的关键帧中让div元素顺时针旋转30度,在背景色为绿色的关键帧中让div元素逆时针旋转30度,动画的延迟时间为2s。代码清单如下:

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml/DTD/xhtml1-transitional.dtd">
 2 <html>
 3 <head>
 4 <meta charset="utf-8" content="text/html" http-equiv="content-type">
 5 <title></title>
 6 <style type="text/css">
 7
 8     div {
 9         width: 100px;
10         height: 300px;
11         color: white;
12         background-color: black;
13     }
14     @keyframes mycolor {
15         0% {
16             background-color: red;
17             transform: rotate( 0deg );
18         }
19         40% {
20             background-color: yellow;
21             transform: rotate( 30deg );
22         }
23         70% {
24             background-color: blue;
25             transform: rotate( -30deg );
26         }
27         100% {
28             background-color: green;
29             transform: rotate( 0deg );
30         }
31     }
32     div:hover {
33         animation:mycolor 5s linear 2s;
34     }
35
36 </style>
37 </head>
38 <body>
39      <div>示例</div>
40 </body>
41 </html>

从上面的例子我们可以得出Transitions动画功能与Animations动画功能的区别:虽然它们两者都是通过改变元素的属性值来实现动画效果,但是Transitions只能通过指定属性的开始值与结束值,然后在这两者之间进行平滑过渡的方式来实现动画的效果,因此不能实现较复杂的动画效果;而Animations功能可以通过定义多个关键帧以及每个关键帧中元素的属性值来实现复杂的动画效果。

时间: 2024-12-09 17:28:12

CSS3中动画效果Transitions与Animations的区别的相关文章

测试css3的动画效果在display:none的时候不耗费性能

1 <!doctype html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>Test TS Serializer</title> 6 <style> 7 .loadings { 8 width: 120px; 9 height: 120px; 10 /* background: #FFFFFF; */ 11 border-radius: 3

CSS3新动画效果

CSS3添加了几个动画效果的属性,通过设置这些属性,可以做出一些简单的动画效果而不需要再去借助JavaScript.CSS3动画的属性主要分为三类:transform.transition以及animation. transformrotate设置元素顺时针旋转的角度,用法是:transform: rotate(x);参数x必须是以deg结尾的角度数或0,可为负数表示反向.scale设置元素放大或缩小的倍数,用法包括:transform: scale(a); 元素x和y方向均缩放a倍transf

CSS3中动画属性transform、transition和animation

Transform:变形 在网页设计中,CSS被习惯性的理解为擅长表现静态样式,动态的元素必须借助于javascript才可以实现,而CSS3的出现改变了这一思维方式.CSS3除了增加革命性的创新功能外,还提供了对动画的支持,可以用来实现旋转.缩放.平移.扭曲和过渡效果等等,这些功能再一次证明了CSS3功能的强大和无限潜能. CSS3实现元素变形的基础来源于新增的transform属性,该属性可用于实现元素的旋转.缩放.平移.扭曲等效果.目前webkit内核支持-webkit-transform

CSS3实现动画效果常用方法

早期在web中要实现动画效果,都是依赖于JavaScript或flash来完成,但在CSS3中新增加了一个新的模块transition,它可以通过一些简单的css事件来触发元素的外观变化,让效果显得更加细腻.简单来说,就是通过鼠标的单击.获得焦点.被点击.或对元素任何改变中触发,并平滑地以动画效果改变css属性值 在css中创建简单的过渡效果可以从以下几个步骤来实现 (1)在默认样式中声明元素的初始状态样式 (2)声明过渡元素最终状态样式,比如悬浮状态 (3)在默认样式中通过添加过渡函数,添加一

css3的动画效果

全新的css3加入的动画效果: [ animation-name ]:检索或设置对象所应用的动画名称 [ animation-duration ]: 检索或设置对象动画的持续时间 [ animation-timing-function ] :检索或设置对象动画的过渡类型 [ animation-delay ]: 检索或设置对象动画延迟的时间 [ animation-iteration-count ]: 检索或设置对象动画的循环次数 [ animation-direction ]: 检索或设置对象

CSS3悬浮动画效果

利用CSS3的伪类元素hover以及transform,transition等动画属性,可以做出一些炫酷的动画效果.下面将一些项目中使用到的示例发布出来,供大家一起学习研究.演示地址:runjs. 浏览器兼容:Chrome,Safari,IE10及以上,IE9不支持渐变效果,IE8以下不支持. transform:该属性允许我们对元素进行旋转(rotate).缩放(scale).移动(translate)或倾斜(skew). transition:过渡属性,该属性为简写属性,用于设置4个过渡属性

jquery中动画效果的函数

在jquery中有很多的动画效果,我给大家分享了一下jquery中的动画函数 jQuery的效果函数列表: animate():对被选元素应用“自定义”的动画. clearQueue():对被选元素移除所有排队的函数(仍未运行的). delay():对被选元素的所有排队函数(仍未运行)设置延迟. dequeue():运行被选元素的下一个排队函数. fadeln():逐渐改变被选元素的不透明度,从隐藏到可见. fadeOut():逐渐改变被元素的不透明度,从可见到隐藏. fadeTo():把被选元

简单的“加载中”动画效果

在日常开发过程中,处理一些延迟操作的时候,经常需要显示一个"加载中"对话框来来表示程序正在请求或正在处理.那么如何写一个最简单的动画效果呢? 这里我写了个demo: MainActivity: public class MainActivity extends Activity {     //ProgressDialog用于显示加载对话框用     private ProgressDialog progressDialog = null;     //显示结果用     privat

css3实现动画效果

一.动画效果的常用属性 实现动画效果需要借助css3的下列属性:transform,transion,animation(具体可以参见教材) 二.动画效果实例 1)文字闪烁的动画效果 /*文字的闪烁效果*/ @-webkit-keyframes blink{ 0%{ opacity:0; }40%{ opacity:.3; }50%{ opacity:.8; }55%{ opacity:.3; }60%{ opacity:.8; }100%{ opacity:0; } } 文字闪烁css代码 .