CSS3的三個與變形和動畫啊相關的屬性:css
瀏覽器支持狀況:css3
Internet Explorer 十、Firefox、Opera 支持 transform 屬性。web
Internet Explorer 9 支持替代的 -ms-transform 屬性(僅適用於 2D 轉換)。瀏覽器
Safari 和 Chrome 支持替代的 -webkit-transform 屬性(3D 和 2D 轉換)。函數
Opera 只支持 2D 轉換。動畫
2D transform變換方法.net
函數 | 描述 |
---|---|
translate(x,y) | 定義 2D 轉換,沿着 X 和 Y 軸移動元素 |
rotate(angle) | 定義 2D 旋轉,在參數中規定角度 |
scale(x,y) | 定義 2D 縮放轉換,改變元素的寬度和高度 |
skew(x-angle,y-angle) | 定義 2D 傾斜轉換,沿着 X 和 Y 軸 |
matrix(n,n,n,n,n,n) | 定義 2D 轉換,使用六個值的矩陣 |
transform-origin 屬性3d
前面咱們提到的transform的方法都是基於元素的中心來變換的,也就是元素變換的基點默認是元素的中心。可是有時候咱們須要在不一樣的位置對元素進行這些操做,那麼咱們就可使用transform-origin來對元素進行基點位置改變。該屬性能夠接收三個參數:orm
transform-origin: x-axis y-axis z-axis;blog
3D transform變換方法
Internet Explorer 10 和 Firefox 支持 3D 轉換.
Chrome 和 Safari 必須添加前綴 -webkit-.
Opera 還不支持 3D 轉換(支持 2D 轉換 ).
三維變換使用基於二維變換的相同屬性。CSS3中的3D變換主要包括如下幾種功能函數:
還有如下幾個轉換屬性:
目前各大主流瀏覽器對transform 3d屬性的兼容性還不是特別好,感興趣的讀者能夠自行深刻了解。下面咱們介紹幾個經常使用的功能方法:
rotateX()方法,圍繞其在一個給定度數X軸旋轉的元素;
rotateY()方法,圍繞其在一個給定度數Y軸旋轉的元素;
rotateZ()方法,圍繞其在一個給定度數Z軸旋轉的元素。
W3C標準中對css3的transition這是樣描述的:「css的transition容許css的屬性值在必定的時間區間內平滑地過渡。這種效果能夠在鼠標單擊、得到焦點、被點擊或對元素任何改變中觸發,並圓滑地以動畫效果改變CSS的屬性值。」
transition屬性的值包括如下四個:
瀏覽器兼容性
Internet Explorer 9 以及更早的版本,不支持 transition 屬性。
Internet Explorer 10, Firefox, Opera 和 Chrome支持transition 屬性。Chrome 25 以及更早的版本以及Safari 須要前綴 -webkit-。
要使用animation動畫,先要熟悉一下keyframes,Keyframes的語法規則:命名是由」@keyframes」開頭,後面緊接着是這個「動畫的名稱」加上一對花括號「{}」,括號中就是一些不一樣時間段樣式規則。不一樣關鍵幀是經過from(至關於0%)、to(至關於100%)或百分比來表示(爲了獲得最佳的瀏覽器支持,建議使用百分比),
@keyframes定義好了,要使其能發揮效果,必須經過animation把它綁定到一個選擇器,不然動畫不會有任何效果。下面列出了animation的屬性:
屬性 | 描述 | 取值 |
---|---|---|
animation | 全部動畫屬性的簡寫屬性,除了 animation-play-state 屬性 | |
animation-name | 規定 @keyframes 動畫的名稱 | |
animation-duration | 規定動畫完成一個週期所花費的秒或毫秒 | 默認是 0 |
animation-timing-function | 規定動畫的速度曲線 | 默認是 「ease」 |
animation-delay | 規定動畫什麼時候開始 | 默認是 0 |
animation-iteration-count | 規定動畫被播放的次數 | 默認是 1(infinite:無限次 |
animation-direction | 規定動畫是否在下一週期逆向地播放 | 默認是 「normal」(reverse:反向播放;alternate:奇數次正向播放,偶數次反向播放;alternate-reverse:奇數次反向播放,偶數次正向播放。) |
animation-play-state | 規定動畫是否正在運行或暫停 | 默認是 「running」(paused:暫停動畫)
|
瀏覽器兼容性
Internet Explorer 十、Firefox 以及 Opera 支持 @keyframes 規則和 animation 屬性。
Chrome 和 Safari 須要前綴 -webkit-。
注意:Internet Explorer 9,以及更早的版本,不支持 @keyframe 規則或 animation 屬性。
Transform、Transition、Animation 的區別:
Transform:對元素進行變形;
Transition:對元素某個屬性或多個屬性的變化,進行控制(時間等),相似flash的補間動畫。但只有兩個關鍵貞。開始,結束。
Animation:對元素某個屬性或多個屬性的變化,進行控制(時間等),相似flash的補間動畫。能夠設置多個關鍵貞。
Transition與Animation:
transition須要觸發一個事件 ,而animation在不須要觸發任何事件的狀況下也能夠顯式的隨着時間變化來改變元 素css的屬性值,從而達到一種動畫的效果。
以上大部份內容來自:http://blog.csdn.net/u014607184/article/details/51801393 ,感謝做者