1. 程式人生 > 實用技巧 >CSS3(三) 3D 轉換

CSS3(三) 3D 轉換

(1)3D 轉換

CSS3 允許您使用 3D 轉換來對元素進行格式化。

在本中,您將學到其中的一些 3D 轉換方法:

rotateX()

rotateY()

(2)rotateX() 方法

rotateX()方法,圍繞其在一個給定度數X軸旋轉的元素

div { transform: rotateX(120deg); 
-webkit-transform: rotateX(120deg); /* Safari 與 Chrome */ 
}

(3)rotateY() 方法

rotateY()方法,圍繞其在一個給定度數Y軸旋轉的元素。

div { transform: rotateY(130deg); 
-webkit-transform: rotateY(130deg); /* Safari 與 Chrome */

(4)3D 轉換其他方法

函式

描述

matrix3d(n,n,n,n,n,n,
n,n,n,n,n,n,n,n,n,n)

定義 3D 轉換,使用 16 個值的 4x4 矩陣。

translate3d(x,y,z)

定義 3D 轉化。

translateX(x)

定義 3D 轉化,僅使用用於 X 軸的值。

translateY(y)

定義 3D 轉化,僅使用用於 Y 軸的值。

translateZ(z)

定義 3D 轉化,僅使用用於 Z 軸的值。

scale3d(x,y,z)

定義 3D 縮放轉換。

scaleX(x)

定義 3D 縮放轉換,通過給定一個 X 軸的值。

scaleY(y)

定義 3D 縮放轉換,通過給定一個 Y 軸的值。

scaleZ(z)

定義 3D 縮放轉換,通過給定一個 Z 軸的值。

rotate3d(x,y,z,angle)

定義 3D 旋轉。

rotateX(angle)

定義沿 X

軸的 3D 旋轉。

rotateY(angle)

定義沿 Y 軸的 3D 旋轉。

rotateZ(angle)

定義沿 Z 軸的 3D 旋轉。

perspective(n)

定義 3D 轉換元素的透視檢視。

首先宣告 transform-style:preserve-3d

perspective:2000px; //範圍在800-2000px

CSS3動畫

CSS3中,我們為了新增某種效果可以從一種樣式轉變到另一個的時候,無需使用Flash動畫或JavaScript

(1)@keyframes 規則

要建立 CSS3 動畫,你需要了解 @keyframes 規則。

@keyframes 規則是建立動畫。

@keyframes 規則內指定一個 CSS 樣式和動畫將逐步從目前的樣式更改為新的樣式。

(2)CSS3動畫是什麼?

動畫是使元素從一種樣式逐漸變化為另一種樣式的效果。

您可以改變任意多的樣式任意多的次數。

當在@keyframes建立動畫,把它繫結到一個選擇器(動畫的名稱),否則動畫不會有任何效果。

規定動畫的名稱,規定動畫的時長

請用百分比來規定變化發生的時間,或用關鍵詞 "from" "to",等同於 0% 100%

0% 是動畫的開始,100% 是動畫的完成。

為了得到最佳的瀏覽器支援,您應該始終定義 0% 100% 選擇器。

"myfirst" 動畫捆綁到 div 元素,時長:5 秒:

當動畫為 25% 50% 時改變背景色,然後當動畫 100% 完成時再次改變:

div { animation: myfirst 5s;

-webkit-animation: myfirst 5s; /* Safari 與 Chrome */ 

}

@keyframes myfirst { 

0% {background: red;} 

25% {background: yellow;} 

50% {background: blue;} 

100% {background: green;} 

} 

@-webkit-keyframes myfirst /* Safari 與 Chrome */ { 

0% {background: red;} 

25% {background: yellow;} 

50% {background: blue;} 

100% {background: green;} 

}

(3)、居於與CSS3的動畫屬性

下面的表格列出了 @keyframes 規則和所有動畫屬性:

屬性

描述

CSS

@keyframes

規定動畫。

3

animation

所有動畫屬性的簡寫屬性,除了 animation-play-state 屬性。

3

animation-name

規定 @keyframes 動畫的名稱。

3

animation-duration

規定動畫完成一個週期所花費的秒或毫秒。預設是 0

3

animation-timing-function

規定動畫的速度曲線。預設是 "ease"

3

animation-fill-mode

規定當動畫不播放時(當動畫完成時,或當動畫有一個延遲未開始播放時),要應用到元素的樣式。

3

animation-delay

規定動畫何時開始。預設是 0

3

animation-iteration-count

規定動畫被播放的次數。預設是 1

3

animation-direction

規定動畫是否在下一週期逆向地播放。預設是 "normal"

3

animation-play-state

規定動畫是否正在執行或暫停。預設是 "running"

3

下面兩個例子設定所有動畫屬性:

div { 

animation-name: myfirst;

animation-duration: 5s;

animation-timing-function: linear;

animation-delay: 2s;

animation-iteration-count: infinite;

animation-direction: alternate;

animation-play-state: running; /* Safari 與 Chrome: */ 

-webkit-animation-name: myfirst;

-webkit-animation-duration: 5s;

-webkit-animation-timing-function: linear;

-webkit-animation-delay: 2s;

-webkit-animation-iteration-count: infinite;

-webkit-animation-direction: alternate;

-webkit-animation-play-state: running;

}

與上面的動畫相同,但是使用了簡寫的動畫 animation 屬性:

div { 

animation: myfirst 5s linear 2s infinite alternate; /* Safari 與 Chrome: */ 

-webkit-animation: myfirst 5s linear 2s infinite alternate;

}