你需要知道的CSS3 动画技术[译](6)
作者:神采飞扬 来源:前端观察 时间:2009-12-30 17:02:00
transform-origin
transform-origin不是transform的一个子功能,但是和transform关系非常密切。它可以用来指定transform的起点,比如,rotate变形的默认起点是其中间,你可以将起点设置在左上角,或者左下角,这样rotate变形的结果就可能大不相同了。
transform-origin接受两个参数,它们可以是百分比,em,px等具体的值,也可以是left,center,right,或者 top,middle,bottom等描述性参数。几个例子:
.class1{-moz-transform-origin: 0 0;
-webkit-transform-origin: 0 0;
-o-transform-origin: 0 0;
...
}
.class2{-moz-transform-origin:100% 100%;
-webkit-transform-origin:100% 100%;
-o-transform-origin:100% 100%;
...}
.class3{-moz-transform-origin:top left;
-webkit-transform-origin:top left;
-o-transform-origin:top left;
...}
浏览器兼容性
该属性目前也只有webkit、firefox和Opera 10.5支持,而且需要添加各自的私有前缀。
transition(转换)
一个涉及到CSS属性的基本的转换就是定义和移动一个元素从它的静止状态(比如,深蓝色背景)到它的hover或者激活状态(比如,浅蓝色背景)。
转换可以和变形同时使用(以及引发诸如:hover 或:focus事件)以创建一些动画。淡出背景色彩,滑动一个元素以及让一个对象旋转都可以通过CSS转换实现。
#nav a{ background-color:red; }
#nav a:hover, #nav a:focus{
background-color:blue;
/* 告诉转换去应用到background-color 属性(看起来像一个CSS 参数,不是吗? #foreshadowing)*/
-webkit-transition-property:background-color;
-o-transition-property:background-color;
/* 让它持续两秒钟*/
-webkit-transition-duration:2s;
-o-transition-duration:2s;
}
转换的一些参数
transition-property
指定转换的CSS属性名称,比如,上面的例子中,将转换应用于background-color属性。
transition-duration
定义转换花费的时间(从旧属性换到新属性花费的时间)
transition-timing-function
可以理解为过度效果。指定转换过程中的中间值。可以用cubic-bezier指定。当然有几个常用的内置值:ease | linear | ease-in | ease-out | ease-in-out
transition-delay
这个比较容易理解,就是转换延迟的时间。时间可以为正整数、负整数和零,非零的时候必须设置单位是s(秒)或者ms(毫秒),为负数的时候,转换的动作会从该时间点开始显示,之前的动作被截断。
注:参数部分为前端观察翻译时添加,原文中没有。
浏览器支持
像transform属性一样酷,但是目前只有WebKit浏览器支持。Opera 10.5 pre版本也可以通过添加-o-前缀来支持。-moz-transition已经在最近的nightly-build版本的Firefox 3.7中可用。你也可以添加-moz-transition到你的CSS中以实现将来的增强。甚至可以添加一个不用私有前缀的属性,以防万一。