实例讲解CSS3中Transform的perspective属性的用法

2020-04-30 15:09:18易采站长站整理

a) perspective属性设置镜头到元素平面的距离。所有元素都是放置在z=0的平面上。比如perspective(300px)表示,镜头距离元素表面的位置是300像素。
b) perspective-origin属性规定了镜头在平面上的位置。默认是放在元素的中心。
下面用一个正方体(或者说骰子)向大家演示视角不同视角(perspective 以及 )的差别。
镜头距离z=0平面的不同距离的效果。
2016422131027863.jpg (554×617)

镜头在z坐标固定时,x和y坐标(perspective-origin)变化时的差别。
2016422131054066.jpg (554×148)

使用CSS3进行3D变换很简单。
例如:让一个Div沿Y轴旋转一个角度:
上面的原始的Div和图片,下面是旋转后的效果。

CSS Code复制内容到剪贴板

<div id="animateTest" >   
    <img src="http://imgcache.qq.com/ptlogin/head/1_100.gif"    
         width="100" height="100">   
</div>   
    
<div id="animateTest"    
     style="<span style="color: #ff0000;">-webkit-transform: rotateY(40deg);</span>">   
    <img src="http://imgcache.qq.com/ptlogin/head/1_100.gif"    
         width="100" height="100">   
</div>  

第一张图是原始状态的DIV,第二张图是旋转后的效果。
2016422131115211.jpg (289×300)

是不是效果不明显?这是因为镜头离平面太远了,所以旋转效果不明显。现在我们试试perspective属性。我们设置perspect=400px。

CSS Code复制内容到剪贴板

<div id="animateTest"    
     style="-webkit-transform: <span style="color: #ff0000;">perspective(400px)</span> rotateY(40deg);">   
<img src="http://imgcache.qq.com/ptlogin/head/1_100.gif"    
     width="100" height="100">   
</div>  

2016422131141491.jpg (300×188)

怎么样现在效果明显了吧。这就是perspective的用途。
 
不过在chrome中发现一个问题,那就是perspective一定要在rotateY(或rotateX)的前面。如果代码写成下面的情况,perspective的设置会无效。