以下兩行語句有什么區(qū)別?
1 2 | <div id= "animateTest"
style= "-webkit-transform: perspective(400px) rotateY(40deg);" > |
1 2 | <div id= "animateTest"
style= "-webkit-transform: rotateY(40deg) perspective(400px);" > |
如果大家不清楚,請聽我娓娓道來。
CCS3中的Transform是設(shè)置界面樣式和動畫的一大利器。而且在Chrome和FF中還支持3D變換。IE9不支持,IE10支持。
只要是3D場景都會涉及視角問題和透視的問題。在Transform中的設(shè)置方法比較簡單:
下面用一個正方體(或者說骰子)向大家演示視角不同視角(perspective 以及 )的差別。
鏡頭距離z=0平面的不同距離的效果。
鏡頭在z坐標固定時,x和y坐標(perspective-origin)變化時的差別。
使用CSS3進行3D變換很簡單。
例如:讓一個Div沿Y軸旋轉(zhuǎn)一個角度:
上面的原始的Div和圖片,下面是旋轉(zhuǎn)后的效果。
<div id="animateTest" > <img src="http://imgcache.qq.com/ptlogin/head/1_100.gif" width="100" height="100"></div><div id="animateTest" style="-webkit-transform: rotateY(40deg);"> <img src="http://imgcache.qq.com/ptlogin/head/1_100.gif" width="100" height="100"></div>
第一張圖是原始狀態(tài)的DIV,第二張圖是旋轉(zhuǎn)后的效果。
是不是效果不明顯?這是因為鏡頭離平面太遠了,所以旋轉(zhuǎn)效果不明顯?,F(xiàn)在我們試試perspective屬性。我們設(shè)置perspect=400px。
<div id="animateTest" style="-webkit-transform: perspective(400px) rotateY(40deg);"><img src="http://imgcache.qq.com/ptlogin/head/1_100.gif" width="100" height="100"></div>
怎么樣現(xiàn)在效果明顯了吧。這就是perspective的用途。
不過在chrome中發(fā)現(xiàn)一個問題,那就是perspective一定要在rotateY(或rotateX)的前面。如果代碼寫成下面的情況,perspective的設(shè)置會無效。
<div id="animateTest" style="-webkit-transform: rotateY(40deg) perspective(400px);">
在FireFox中也是這種情況。
在mozilla的文檔上也沒有說明這個情況?,F(xiàn)在還不確定是設(shè)計如此還是Bug??傊蠹矣玫臅r候就將prespective放在前面好了。
聯(lián)系客服