基礎
CSS3的transform可以做2D的操作,當然也有3D。
但需要再一個擁有perspective屬性的父元素才能顯現3D的效果。
例如:
XML/HTML Code復制內容到剪貼板
<div id="div1"><!– perspective –>
<div id="div2">3D</div><!– transform –>
</div>
perspective屬性固名思義就是透視的意思;該屬性可以定義3D視覺的角度,讓底下子元素使用3D特效時能夠完整顯示。
perspective使用方法:
CSS Code復制內容到剪貼板
perspective:150px;
/* 目前并非所有瀏覽器皆支援 */
-webkit-perspective:150px;
-moz-perspective:150px;
另外還有個屬性叫perspective-origin
功能是用來定義X和Y軸為基礎的3D位置(定義初始位置)
perspective-origin使用方法:
屬性值:(x軸:left、center、right、長度、百分比) (y軸:top、center、bottom、長度、百分比)
CSS Code復制內容到剪貼板
/* perspective-origin 參數預設是50% 50% */
-webkit-perspective-origin: 40% 60%;/* Safari and Chrome */
-webkit-perspective-origin: 40px 60px;/* Safari and Chrome */
-moz-perspective-origin:left bottombottom; /* Firefox */
注意:perspective和perspective-origin受影響的是子元素,而非元素本身
最后就可以對div做3D的效果(rotateX和rotateY)
CSS Code復制內容到剪貼板
-webkit-transform: rotateX(290deg);
-webkit-transform: rotateY(290deg);
-moz-transform: rotateX(290deg);
-moz-transform: rotateY(290deg);
實例
以下兩行語句有什么區別?
CSS Code復制內容到剪貼板
<div id="animateTest"
style="-webkit-transform: perspective(400px) rotateY(40deg);">
<div id="animateTest"
style="-webkit-transform: rotateY(40deg) perspective(400px);">
如果大家不清楚,請聽我娓娓道來。
CCS3中的Transform是設置界面樣式和動畫的一大利器。而且在Chrome和FF中還支持3D變換。IE9不支持,IE10支持。
只要是3D場景都會涉及視角問題和透視的問題。在Transform中的設置方法比較簡單:
只能選擇透視方式,也就是近大遠小的顯示方式。
鏡頭方向只能是平行Z軸向屏幕內,也就是從屏幕正前方向里看。
可以調整鏡頭與平面位置:
新聞熱點
疑難解答