CSS3中和动画有关的属性有三个 、 和 。下面来一一说明:
从字面来看的释义为改变,使…变形;转换 。这里我们就可以理解为变形。那都能怎么变呢?
none 表示不进行变换;
旋转 :(20deg) 旋转角度可以为负数。需要先有-定义旋转的基点可为left top right 或坐标值(50px 70px)。
skew 扭曲 :skew(30deg,30deg) skew(相对x轴倾斜,相对y轴倾斜)
scale 缩放 :scale(2,3) 横向放大2倍,纵向放大3倍。如等比放大写一个参数即可。
移动 :(50px, 50px);
矩阵变形 基本语法: (a, c, b, d, tx, ty);其中a, c, b, d是一个二维矩阵:
┌ ┐
│ a b │
│ c d │
└ ┘
a:X轴缩放比例 b:Y轴倾斜 c:Y轴缩放比例 d:X轴倾斜
tx, ty就是就是基于X和Y 坐标重新定位元素。其实就是 (tx,ty)
W3C标准中对CSS3的这是样描述的:“CSS的允许CSS的属性值在一定的时间区间内平滑地过渡。这种效果可以在鼠标单击、获得焦点、被点击或对元素任何改变中触发,并圆滑地以动画效果改变CSS的属性值。
主要包含四个属性值:-: 执行变换的属性;
- : 变换延续的时间:
--: 在延续时间段,变换的速率变化;
- delay :变换延迟时间
下面一一说明这四个属性:
-
语法:
- : none | all | [ ]
-是用来指定当元素其中一个属性改变时执行效果,其 主要有以下几个值:none(没有属 性改 变);all(所有属性改变)这个也是其默认值;(元素属性名);当其值为none时,马上停止执行,当指定为all 时,则元素产生任何属性值变化时都将执行效果,ident是可以指定元素的某一个属性值。其对应的类型如下:
1、color: 通过红、绿、蓝和透明度组件变换(每个数值单独处理),如:-color,-color,color,-color等CSS属性;
2、:真实的数字,如:word-,width,- align,top,right,,left,,-width,,min-width,min- ,max-width,max-,line-,,-width,- ,-等属性;
3、:真实的数字,如:word-,width,- align,top,right,,left,min-width,min- ,max-width,max-,line-,,-等属性;
4、 离散步骤(整个数字),在真实的数字空间属性动画,以及使用floor()转换为整数时发生,如:-,z-index等属性;
5、真实的(浮点型)数值,如:zoom,,font-等属性;
6、 list:详情请参阅:《CSS3 》。
7、:通过x、 y、 width和(转为数值)变换,如:crop;
8、:离散步骤,在0到1数字范围之内,0表示“隐藏”,1表示完全“显示”,如:;
9、:作用于color、x、y、和blur(模糊)属性,如:text-;
10、:通过每次停止时的位置和颜色进行变化。它们必须有相同的类型(放射状的或是线性的)和相同的停止数值以便执行动画,如:-image;
11、paint (SVG):只支持下面的情况:从到以及color到color,然后工作与上面类似;
12、space- list of above:如果列表有相同的项目数值,则列表每一项按照上面的规则进行变化,否则无变化;
13、a :如果缩写的所有部分都可以实现动画,则会像所有单个属性变化一样变化。
支持执行效果的属性:
-是用来指定元素 转换过程的持续时间,取值:
为数值属性动画,单位为s(秒),可以作用于所有元素,包括:和:after伪元素。其默认值是0,也就是变换时是即时的。
--
取值:
--的值允许你根据时间的推进去改变属性值的变换速率,--有6个可能值:
1、ease:(逐渐变慢)默认值,ease函数等同于贝塞尔曲线(0.25, 0.1, 0.25, 1.0);
2、:(匀速), 函数等同于贝塞尔曲线(0.0, 0.0, 1.0, 1.0);
3、ease-in:(加速),ease-in 函数等同于贝塞尔曲线(0.42, 0, 1.0, 1.0);
4、ease-out:(减速),ease-out 函数等同于贝塞尔曲线(0, 0, 0.58, 1.0);
5、ease-in-out:(加速然后减速),ease-in-out 函数等同于贝塞尔曲线(0.42, 0, 0.58, 1.0);
6、cubic-:(该值允许你去自定义一个时间曲线), 特定的cubic-曲线。 (x1, y1, x2, y2)四个值特定于曲线上点P1和点P2。所有值需在[0, 1]区域内,否则无效。
其是cubic-为通过贝赛尔曲线来计算“转换”过程中的属性值,如下曲线所示,通过改变P1(x1, y1)和P2(x2, y2)的坐标可以改变整个过程的 。初始默认值为。
-delay
-delay是用来指定一个动画开始执行的时间,也就是说当改变元素属性值后多长时间开始执行效果,取 值:
为数值,单位为s(秒),它的使用和-极其相似,也可以作用于所有元素,包 括:和:after伪元素。 默认大小是”0″,也就是变换立即执行,没有延迟。
有时我们不只改变一个CSS效果的属性,而是想改变两个或者多个CSS属性的效果,那么我们只要把几个的 声明串 在一起,用逗号(“,”)隔开,然后各自可以有各自不同的延续时间和其时间的速率变换方式。但需要值得注意的一点:-delay与 -的值都是时间,所以要区分它们在连写中的位置,一般浏览器会根据先后顺序决定,第一个可以解析为时间的怭值为 -第二个为-delay。如:
a {: 0.5s ease-in,color 0.3s ease-out}
如果你想给元素执行所有效果的属性,那么我们还可以利用all属性值来操作,此时他们共享同样的延续时间以及速率变换方式,如:
a{: all 0.5s ease-in}
顾名思义为动画的意思。应用在页面DOM上 使其产生动画的效果。在开始介绍之前我们有必要先来了解一个特殊的东西,那就是"Key s",我们把他叫做“关键帧”,玩过flash的朋友可能对这个东西并不会陌生。
key s定义好了以后,就可以去调用定义好的动画“”了。
下面我们来看看怎么给一个元素调用属性
.demo1 {
width: 50px;
: 50px;
-left: 100px;
: blue;
---name:'';/*动画属性名,也就是我们前面key s定义的动画名*/
---: 10s;/*动画持续时间*/
----: ease-in-out; /*动画频率,和--是一样的*/
---delay: 2s;/*动画延迟时间*/
----count: 10;/*定义循环资料,为无限次*/
---: ;/*定义动画方式*/
-name:
-name:是用来定义一个动画的名称,为Key s中的名称,否则不会有动画效果。none为默认值,当值为none时,将没有任何动画效果。另外我们这个属性跟前面所讲的一样,我们可以同时附几个给一个元素,我们只需要用逗号“,”隔开。