标签:重点 反转 灵活 none 最新版 ddl 方向 firefox 矩阵
CSS2D Transform表示2D变换,目前获得了各主流浏览器的支持;CSS3D Transform支持程度不是很完善,仅能够在部分浏览器中获得支持。语法如下:
transform:none | <transform-function> [ <transform-function>]*;
关于这些常用变换函数的功能简单说明如下:
rotate()函数能够旋转指定的元素对象,主要在二维空间内进行操作,接收一个角度参数值,用来指定旋转的幅度,语法如下:
rotate(<angle>);
scale()函数能够缩放元素大小,该函数包含两个参数值,分别用来定义宽和高缩放比例。语法如下:
scale(<number>[, <number>]);
<number>参数值可以是正数、负数和小数。正数值基于指定的宽度和高度将放大元素。负数值不会缩小元素,而是翻转元素(如文字反转),然后再缩放元素。使用小于1的小数可以缩放元素。如果第2个参数省略,则第二个参数等于第一个参数值。
translate()函数能够重新定位元素的坐标,该函数包含两个参数值,分别用来定义x轴和y轴坐标。语法如下:
translate(<translation-value>[,<translation-value>]);
skew()函数能够让元素倾斜显示,该函数包含两个参数值,分别用来定义x轴和y轴坐标倾斜的角度,语法如下:
skew(<angle> [, <angle>]);
<angle>参数表示角度值,第一个参数表示相对于x轴进行倾斜,第二个参数表示相对于y轴进行倾斜,如果省略了第二个参数,则第二个参数值默认值为0。
matrix()是矩阵函数,调用该函数可以非常灵活地实现各种变换效果。matrix()函数的语法如下:
matrix(<number>,<number>,<number>,<number>,<number>,<number>);
六个参数分别负责控制x轴缩放,x轴倾斜,y轴倾斜,y轴缩放,x轴移动,y轴移动。使用前面4个参数的配合,可以实现旋转效果。
CSS变换的原点默认为对象的中心点,如果要改变这个中心点,可以使用transform-origin属性进行定义。语法如下:
transform-origin:[[<percentage>|<length>| left | center | right] [<percentage>|<length>| top | center | bottom]?] | [[ left | center | right ] || [ top | center | bottom ]]
transform-origin属性的初始值为50% 50%,适用于块状元素和内联元素。transform-origin接收两个参数,可以是百分比、em、px等具体的值,也可以是left、center、right或者top、middle、bottom等描述性关键字。
CSS3的3D变换主要包括的函数如下:
考虑到浏览器兼容性,主流浏览器对3D变换支持不是很好,具体如下:
在CSS3中,3D位移主要包括两种函数translateZ()和translate3d()。translate3d()函数是一个元素在三维空间移动。语法如下:
translate3d(tx,ty,tz);
当tz值越大,元素离浏览者更近,视觉上元素变得更大;反之其值越小,元素离浏览者更远。
translateZ()函数可以让元素在Z轴进行位移,用法如下:
translateZ(t);
参数值指的是Z轴的向量位移长度。
使用translateZ()函数可以让元素在Z轴进行位移,当其值为负值时,元素在Z轴越离越远,元素变小;反之,当t为正值时,元素在Z轴上越移越近,元素变大。
在实际应用中,translateZ(t)函数等效于translate3d(0,0,tz)。
CSS3 3D缩放主要有scaleZ()和scale()两种函数,当scale3d()中X轴和Y轴同时为1,即scale3d(1,1,sz),效果等同于scaleZ(sz)。
默认值为1,当值大于1时,元素放大;反之小于1大于0.01时,元素缩小。语法如下:
scale3d(sx,sy,sz);
scaleZ(s);
s指元素每个点在Z轴的比例。
scaleZ(-1)定义了一个原点在Z轴的对称点(按照元素的变换原点)。
scaleZ()和scale3d()函数单独使用时没有任何效果,需要配合其它的变换函数一起使用才有效果。
在3D变换中,可以让元素在任何轴旋转。CSS3新增了3个旋转函数:rotateX()、rotateY()和rotateZ()。基本语法为:
rotateX(a);
rotateY(a);
rotateZ(a);
a指的是一个旋转角度值,可以是正值也可以是负值。正值表示元素围绕轴顺时针旋转,反之逆时针旋转。
还有一个rotate3d()函数,在3D空间,旋转一个[x,y,z]向量并经过元素原点。语法如下:
rotate3d(x,y,z,a);
x、y、z是0到1之间的数值,主要用来描述元素围绕X/Y/Z轴旋转的矢量值;a是一个角度值,主要用来指定元素在3D空间旋转的角度,为正值则元素顺时针旋转,反之逆时针旋转。
CSS3使用transition属性定义过渡动画,目前获得所有浏览器支持。
transition-property属性用来定义过渡动画的CSS属性名称,语法如下:
transition-property: none | all | [<IDENT> ] [ ‘,‘ <IDENT> ]*;
transition-duration属性用来定义转换动画的时间长度,语法如下:
transition-duration:<time>[ ,<time>]*;
初始值为0,适用于所有元素,以及:before和:after伪元素。默认情况下,动画过渡时间为0。
transition-delay属性用来定义开启过渡动画的延迟时间,语法如下:
transition-delay:<time> [, <time>]*;
初始值为0,适用于所有元素,以及:before和:after伪元素。设置时间可以是正整数、负整数和零。设置为非零值时,必须带上单位——s或ms。
为负数时,过渡动画会从该时间点开始,之前的动画会被截断;
为正数时,过度动画会延迟触发。
transition-timing-function属性用来定义过渡动画的类型,语法如下:
transition-timing-function:ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier(<number>,<number>,<number>,<number>) [, ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier(<number>,<number>,<number>,<number>) ]*
CSS3动画一般通过鼠标事件火庄台定义动画,如CSS伪类和JavaScript事件。
动态伪类 | 作用元素 | 说明 |
---|---|---|
:link | 只有链接 | 未访问的链接 |
:visited | 只有链接 | 访问过的链接 |
:hober | 所有元素 | 鼠标经过元素 |
:active | 所有元素 | 鼠标点击元素 |
:focus | 所有可被选中的元素 | 元素被选中 |
JavaScript事件包括click、focus、mousemove、mouseover、mouseout等。
CSS3使用animation属性定义帧动画。最新版本主流浏览器均支持CSS帧动画。
animation和transition属性功能相同——通过改变元素的属性值实现动画效果。区别在于:
animations通过定义多个关键帧以及定义每个关键帧中元素的属性值来实现更为复杂的动画效果;
transitions通过指定属性的开始值与结束值,以及这两个属性值之间进行过渡的方式,实现比较简单的动画效果。
CSS3使用@keyframes定义关键帧,用法如下:
@keyframes animationname{
keyframes-selector{
css-styles;
}
}
使用animation-name属性定义CSS动画名称,语法如下:
animation-name:none | IDENT [, none | IDENT ]*;
初始值为none,定义一个适用的动画列表。每个名字用来选择关键帧,提供属性值;如名称为none,不会有动画。
animation-duration定义动画播放时间,语法如下:
animation-duration:<time> [, <time>]*;
默认值为0,不会有动画。若为负值,视为0。
animation-timing-function定义动画类型,语法如下:
animation-timing-function:ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier(<number>,<number>,<number>,<number>) [, ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier(<number>,<number>,<number>,<number>) ]*
初始值为ease,取值参考transition-timing-function。
animation-delay定义CSS动画延迟播放的时间,参考transition-delay。
animation-iteration-count属性定义动画播放的次数,语法如下:
animation-iteration-count:infinite | <number> [, infinite | <number>]*;
默认值为1,infinite表示无限次。如果取值为非整数,导致动画结束一个周期的一部分;取值为负值,在交替周期内反向播放动画。
animation-direction属性定义动画的播放方向,语法如下:
animation-direction:normal | alternate [, normal | alternate]*;
默认值为normal。为normal时,动画的每次循环向前播放;为alternate时,偶数次向前播放,奇数次向反方向播放。
animation-play-state定义动画正在运行还是暂停,语法如下:
animation-play-state: paused | running;
初始值为running,paused定义动画暂停,running定义动画正在播放。
使用animation-fill-mode属性定义动画外状态,语法如下:
animation-fill-mode: none | forwards | backwards | both [, none | forwards | backwards | both ]*;
初始值为none,如果提供多个属性值,以逗号分隔。取值说明如下:
标签:重点 反转 灵活 none 最新版 ddl 方向 firefox 矩阵
原文地址:http://www.cnblogs.com/ailinzhijia/p/8000807.html