码迷,mamicode.com
首页 > Web开发 > 详细

CSS3的3D转换效果详解介绍

时间:2015-11-05 06:10:43      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:

CSS3的3D转换效果详解介绍:
本章介绍一下CSS3的3D转换效果,此效果的实现依靠的是transform属性,3D转换只是此属性的部分应用,更多相关内容可以参阅CSS3的transform属性总略介绍一章节。
掌握3D转换效果,可以从三个方法作为突破口,分别是rotateX, rotateY, rotateZ,在2D变换过程中rotate()函数的应用,它表示旋转的意思,由于是2D变换,所以它只是在一个平面进行旋转,所以无需细分,具体可以参阅CSS3的2D转换效果详细介绍一章节。 下面分别介绍一下上面的三个旋转方法。
一.rotateX()方法:

<!DOCTYPE html>  
<html>  
<head>  
<meta charset=" utf-8">  
<meta name="author" content="http://www.softwhy.com/" />  
<title>蚂蚁部落</title>  
<style type="text/css">  
#box{  
  position:relative;  
  height:200px;  
  width:200px;  
  margin-top:150px;  
  margin-left:150px;  
  border:1px solid black;  
}  
#inner{  
  padding:50px;  
  position:absolute;  
  border:1px solid black;  
  background-color:yellow;  
  font-size:12px;  
  
  transform-origin:0px 0px;
  -ms-transform-origin:0px 0px;
  -webkit-transform-origin:0px 0px;
  -o-transform-origin:0px 0px;
  -moztransform-origin:0px 0px;
  
  transform:rotateX(0deg); 
  -ms-transform:rotateX(0deg);
  -webkit-transform:rotateX(0deg);
  -o-transform:rotateX(0deg);
  -moz-transform:rotateX(0deg);
}  
table{  
  font-size:12px;  
  width:300px;  
  margin-left:120px;  
}  
.left{text-align:right}  
</style>  
<script type="text/javascript">  
function changeRot(value){  
  var oinner=document.getElementById(inner);  
  var opersp=document.getElementById(persp);  
  oinner.style.transform="rotateX(" + value + "deg)";  
  oinner.style.msTransform="rotateX(" + value + "deg)";  
  oinner.style.webkitTransform="rotateX(" + value + "deg)";  
  oinner.style.MozTransform="rotateX(" + value + "deg)";  
  oinner.style.OTransform="rotateX(" + value + "deg)";  
  opersp.innerHTML=value + "deg";  
} 
window.onload=function(){ 
  var range=document.getElementById("range"); 
  range.onmousemove=function(){ 
    changeRot(this.value); 
  } 
} 
</script>  
</head>  
      
<body>  
<div id="box">  
  <div id="inner">蚂蚁部落</div>  
</div>  
<table>  
  <tr>  
    <td class="left">旋转:</td>  
    <td><input type="range" min="-360" max="360" id="range" value="0"/></td>  
  </tr>  
  <tr>  
    <td class="left">rotateX:</td>  
    <td>(<span id="persp">0deg</span>)</td>  
  </tr>  
</table>  
</body>  
</html>

以上代码演示了rotateX()的作用,他可以控制元素围绕着x轴进行旋转,就像是一个体操运动员,在单杠上旋转一样。
二.rotateY()方法:

<!DOCTYPE html>  
<html>  
<head>  
<meta charset=" utf-8">  
<meta name="author" content="http://www.softwhy.com/" />  
<title>蚂蚁部落</title>  
<style type="text/css">  
#box{  
  position:relative;  
  height:200px;  
  width:200px;  
  margin-top:150px;  
  margin-left:150px;  
  border:1px solid black;  
}  
#inner{  
  padding:50px;  
  position:absolute;  
  border:1px solid black;  
  background-color:yellow;  
  font-size:12px;  
    
  transform-origin:0px 0px;
  -ms-transform-origin:0px 0px;
  -webkit-transform-origin:0px 0px;
  -o-transform-origin:0px 0px;
  -moztransform-origin:0px 0px;
    
  transform:rotateY(0deg); 
  -ms-transform:rotateX(0deg);
  -webkit-transform:rotateY(0deg);
  -o-transform:rotateY(0deg);
  -moz-transform:rotateY(0deg);
}  
table{  
  font-size:12px;  
  width:300px;  
  margin-left:120px;  
}  
.left{text-align:right}  
</style>  
<script type="text/javascript">  
function changeRot(value){  
  var oinner=document.getElementById(inner);  
  var opersp=document.getElementById(persp);  
  oinner.style.transform="rotateY(" + value + "deg)";  
  oinner.style.msTransform="rotateY(" + value + "deg)";  
  oinner.style.webkitTransform="rotateY(" + value + "deg)";  
  oinner.style.MozTransform="rotateY(" + value + "deg)";  
  oinner.style.OTransform="rotateY(" + value + "deg)";  
  opersp.innerHTML=value + "deg";  
} 
window.onload=function(){ 
  var range=document.getElementById("range"); 
  range.onmousemove=function(){ 
    changeRot(this.value); 
  } 
} 
</script>  
</head>  
      
<body>  
<div id="box">  
  <div id="inner">蚂蚁部落</div>  
</div>  
<table>  
  <tr>  
    <td class="left">旋转:</td>  
    <td><input type="range" min="-360" max="360" id="range" value="0"/></td>  
  </tr>  
  <tr>  
    <td class="left">rotateY:</td>  
    <td>(<span id="persp">0deg</span>)</td>  
  </tr>  
</table>  
</body>  
</html>

以上代码演示了rotateY()的作用,他可以控制元素围绕着y轴进行旋转,就像是一个钢管舞演员在竖直的钢管上旋转。
三.rotateZ()方法:

<!DOCTYPE html>  
<html>  
<head>  
<meta charset=" utf-8">  
<meta name="author" content="http://www.softwhy.com/" />  
<title>蚂蚁部落</title>  
<style type="text/css">  
#box{  
  position:relative;  
  height:200px;  
  width:200px;  
  margin-top:150px;  
  margin-left:150px;  
  border:1px solid black;  
}  
#inner{  
  padding:50px;  
  position:absolute;  
  border:1px solid black;  
  background-color:yellow;  
  font-size:12px;  
    
  transform-origin:0px 0px;
  -ms-transform-origin:0px 0px;
  -webkit-transform-origin:0px 0px;
  -o-transform-origin:0px 0px;
  -moztransform-origin:0px 0px;
    
  transform:rotateZ(0deg); 
  -ms-transform:rotateZ(0deg);
  -webkit-transform:rotateZ(0deg);
  -o-transform:rotateZ(0deg);
  -moz-transform:rotateZ(0deg);
}  
table{  
  font-size:12px;  
  width:300px;  
  margin-left:120px;  
}  
.left{text-align:right}  
</style>  
<script type="text/javascript">  
function changeRot(value){  
  var oinner=document.getElementById(inner);  
  var opersp=document.getElementById(persp);  
  oinner.style.transform="rotateZ(" + value + "deg)";  
  oinner.style.msTransform="rotateZ(" + value + "deg)";  
  oinner.style.webkitTransform="rotateZ(" + value + "deg)";  
  oinner.style.MozTransform="rotateZ(" + value + "deg)";  
  oinner.style.OTransform="rotateZ(" + value + "deg)";  
  opersp.innerHTML=value + "deg";  
} 
window.onload=function(){ 
  var range=document.getElementById("range"); 
  range.onmousemove=function(){ 
    changeRot(this.value); 
  } 
} 
</script>  
</head>  
      
<body>  
<div id="box">  
  <div id="inner">蚂蚁部落</div>  
</div>  
<table>  
  <tr>  
    <td class="left">旋转:</td>  
    <td><input type="range" min="-360" max="360" id="range" value="0"/></td>  
  </tr>  
  <tr>  
    <td class="left">rotateZ:</td>  
    <td>(<span id="persp">0deg</span>)</td>  
  </tr>  
</table>  
</body>  
</html>

以上代码演示了rotateZ()的作用,他可以控制元素围绕着z轴进行旋转,关于Z轴,学过立体几何的应该都比较清楚了,随便百度一下就知道了。上面三个代码已经比较清晰的演示了三个旋转函数的作用。
上面介绍的只是3D转换的一个类型的方法,更多类型的方法可以参阅以下列表:
1.translate3d(x,y,z)可以参阅CSS3的3D转换translate3d(x,y,z)函数一章节。 
2.scale3d(x,y,z)可以参阅CSS3的3D转换scale3d(x,y,z)函数一章节。 
3.rotate3d(x,y,z,angle)可以参阅CSS3的3D转换rotate3d(x,y,z,angle)函数一章节。
4.perspective(n)可以参阅CSS3的3D转换perspective(n)函数一章节。 

3D转换还会涉及到以下几个属性,本章节不做介绍了,可以参阅相关章节。
1.transform-origin属性可以参阅CSS3的transform-origin属性用法详解一章节。 
2.transform-style属性可以参阅CSS3的transform-style属性详细介绍一章节。 
3.perspective属性可以参阅CSS3的perspective属性详解一章节。 
4.perspective-origin属性可以参阅CSS3的perspective-origin属性详解一章节。
5.backface-visibility属性可以参阅CSS3的backface-visibility属性详解一章节。 

原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=13265

更多css3知识可以参阅:http://www.softwhy.com/css3/

CSS3的3D转换效果详解介绍

标签:

原文地址:http://www.cnblogs.com/xiaofinder/p/4937972.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!