1. 程式人生 > 其它 >css基礎---transform(3D變形)

css基礎---transform(3D變形)

在瀏覽器中,X軸是從左到右,Y軸是從上到下,Z軸是從裡到外

景深

perspective(n)為 3D 轉換元素定義透視檢視

  perspective的中文意思是:透視,視角。

  沒有透視定義,不成3D。

  下圖為透視的一張圖:

  CSS3中3D transform的透視點是在瀏覽器的前方!

  需要設定該元素父輩元素的perspective大小。 ----- 設定在父元素中,充當3D舞臺

   perspective(n)定義視點離螢幕的距離。

  

perspective: 300px;

3D旋轉

第一種格式:

transform: rotateY(360deg);

第二種格式:

transform:rotate3d(0,1,0,360deg);

rotate3d(x,y,z,angle)定義3D旋轉。

  x:是一個0到1之間的數值,主要用來描述元素圍繞X軸旋轉的向量值;

  y:是一個0到1之間的數值,主要用來描述元素圍繞Y軸旋轉的向量值;

  z:是一個0到1之間的數值,主要用來描述元素圍繞Z軸旋轉的向量值;

  angle:是一個角度值,主要用來指定元素在3D空間旋轉的角度,如果其值為正值表示元素順時針旋轉,為負值表示元素逆時針旋轉。

CSS3中的3D旋轉主要包括四個功能函式
rotateX(angle)、

rotateY(angle)、

rotateZ(angle)、等價於rotate(angle)

rotate3d(x,y,z,angle)
x, y, z分別接受一個數值(number),用來計算向量方向(direction vector),向量方向是三維空間中的一條線, 從座標系原點到x, y, z值確定的那個點,元素圍繞這條線旋轉angle指定的值

3D平移

第一種方式

transform: translateX(200px);

第二種方式

transform: translateZ(length)是3D Transformaton特有的,其他兩個2D中就有
translateZ 它不能是百分比 值; 那樣的移動是沒有意義的。
transform: translate3d(translateX,translateY,translateZ);
translateZ 它不能是百分比 值; 那樣的移動是沒有意義的。

translate3d(x,y,z)定義3D平移,x,y,z分別為移動的位移。

  如下程式碼中,設定父元素的perspective( )為1000px,x,y,x值分別設定為100px,100px,100px。

transform: translate3d(100px,0,0);

3D縮放

transform: scaleZ(number)
transform: scale3d(scaleX,scaleY,scaleZ);

如果只設置scaleZ(number),你會發現元素並沒有被擴大或壓縮,scaleZ(number)需要和translateZ(length)配合使用,number乘以length得到的值,是元素沿Z軸移動的距離,從而使得感覺被擴大或壓縮

scale3d一定要在translate前,不然沒有效果

transform: scaleZ(2) translateZ(100px);

scale3d(x,y,z),scaleX(x),scaleY(y),scaleZ(z)定義3D縮放轉換

  1.scale3d(x,y,z)通過使用3D縮放函式,可以讓元素在Z軸上按比例縮放。

  預設值為1,當值大於1時,元素放大,反之小於1大於0.01時,元素縮小。

  當scale3d()中x和y值同時為1,即scale3d(1,1,z),其效果等同於scaleZ(z)。

 transform:scale3d(2,2,1);