网络编程
位置:首页>> 网络编程>> 网页设计>> 你需要知道的CSS3 动画技术[译](5)

你需要知道的CSS3 动画技术[译](5)

作者:神采飞扬 来源:前端观察 发布时间:2009-12-30 17:02:00 

标签:CSS3,动画,设计师

Matrix

没错,Matrix就是矩阵,矩阵是高等数学中非常基础的一个东东,而在CSS 3中确实一个相当高级的功能,CSS 3引入matrix函数,可以非常灵活的实现上述的各种效果。它有6个参数(a,b,c,d,e,f),它事实上是一个3*3矩阵,经过该矩阵将旧的参数转换成新值:
| a b e |
| c d f |
| 0 0 1 |
如果你有兴趣深入研究,可以看一下这里http://www.w3.org/TR/SVG/coords.html#TransformMatrixDefined,这是SVG的一个文档,但是对于matrix变换的原理是通用的。

让我们来看一个例子吧:

#nav{
 /* nav元素将会像右上角倾斜 */
 -moz-transform: matrix(1, -0.2, 0, 1, 0, 0);
 -webkit-transform: matrix(1, -0.2, 0, 1, 0, 0); 
 -o-transform: matrix(1, -0.2, 0, 1, 0, 0); 
}

浏览器支持

可喜的是,IE支持matrix滤镜,虽然它不支持大部分CSS3变形功能,但是使用它的这个滤镜,基本也可以实现相同的效果,不过,你要先搞明白矩阵运算再说。webkit和Firefox(3.5+)、Opera 10.5都支持该功能。

链式变形

变形常常是单独的,但是如果你想同时用到多种变形,代码也是可以快速整合的,特别是使用私有扩展。幸运的是,我们有一些内置的缩写:

浏览器支持
可喜的是,IE支持matrix滤镜,虽然它不支持大部分CSS3变形功能,但是使用它的这个滤镜,基本也可以实现相同的效果,不过,你要先搞明白矩阵运算再说。webkit和Firefox(3.5+)、Opera 10.5都支持该功能。

#nav{
 -moz-transform: translate(10, 25); 
 -webkit-transform: translate(10, 25); 
 -o-transform: translate(10, 25); 
 -moz-transform: rotate(90deg); 
 -webkit-transform: rotate(90deg); 
 -o-transform: rotate(90deg); 
 -moz-transform: scale(2, 1); 
 -webkit-transform: scale(2, 1); 
 -o-transform: scale(2, 1); 
}

这些变形可以被链到一起,从而让你的代码更高效:

#nav{
 -moz-transform: translate(10, 25) rotate(90deg) scale(2, 1);
 -webkit-transform: translate(10, 25) rotate(90deg) scale(2, 1); 
 -o-transform: translate(10, 25) rotate(90deg) scale(2, 1); 
 }

这些属性的真正的威力是合并到一起。你可以移动、旋转、缩放并控制任何内联元素和块级元素而不使用JavaScript。一旦这些属性的支持变的更加广泛,我们就可以创建更丰富和更轻量的界面和应用。

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com