2. 3d场景
<!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 <style type="text/css"> 7 .wrapper{ 8 -webkit-prespective: 800; 9 -webkit-perspective-origin: 50% 50%; 创建3d可视窗口,800是深度,50%,50%是视角 10 } 11 .content{ 12 width: 300px; 13 height: 300px; 宽高若不与正方体的宽高一致,正方体转动是会被div所挡住,改变位置。且会出现bug 14 top: 150px; 15 -webkit-transform-style: preserve-3d; 告诉浏览器下面的transform是3d的 16 position: relative; 包含的div是绝对定位 17 margin: 0 auto; 18 -webkit-transition: -webkit-transform .6s; 过渡动画 19 20 } 21 .swq{ 22 width: 300px; 23 height: 300px; 24 background: #584C56; 25 color: white; 26 text-align: center; 27 font-size: 110px; 28 line-height: 300px; 29 height: 300px; 30 position: absolute; 31 32 33 } 34 35 #swq1{ div排布,右手定则判断坐标系 36 -webkit-transform: translateZ(150px); 37 38 } 39 #swq2{ 40 -webkit-transform: translateX(150px) rotateY(90deg); 41 } 42 #swq3{ 43 -webkit-transform: translateZ(-150px) rotateX(-180deg); 44 45 } 46 #swq4{ 47 -webkit-transform: translateX(-150px) rotateY(-90deg); 48 } 49 #swq5{ 50 -webkit-transform: translateY(-150px) rotateX(90deg); 51 52 } 53 54 #swq6{ 55 -webkit-transform: translateY(150px) rotateX(90deg); 56 } 57 58 </style> 59 </head> 60 <body> 61 <div class="wrapper"> 62 <div class="content" id="yu"> 63 <div id="swq1" class="swq">1</div> 64 <div id="swq2" class="swq">2</div> 65 <div id="swq3" class="swq">3</div> 66 <div id="swq4" class="swq">4</div> 67 <div id="swq5" class="swq">5</div> 68 <div id="swq6" class="swq">6</div> 69 </div> 70 <button id="button1" onclick="push(this)">上</button> 71 <button id="button2" onclick="push(this)">下</button> 72 <button id="button3" onclick="push(this)">左</button> 73 <button id="button4" onclick="push(this)">右</button> 74 </div> 75 <script type="text/javascript"> 76 77 var obj; 78 var re=0; 79 var de=0; 80 function push(obj){ 81 var yu=document.getElementById(‘yu‘); 82 switch(obj.id){ 83 case(‘button1‘): 84 re=re+90; 85 yu.style.webkitTransform="rotateX("+re+"deg)"; 86 break; 87 case(‘button2‘): 88 re=re-90; 89 yu.style.webkitTransform=‘rotateX(‘+re+‘deg)‘; 90 break; 91 case(‘button3‘): 92 de=de+90; 93 yu.style.webkitTransform=‘rotateY(‘+de+‘deg)‘; 94 bdeak; 95 case(‘button4‘): 96 de=de-90; 97 yu.style.webkitTransform=‘rotateY(‘+de+‘deg)‘; 98 break; 99 } 100 } 101 102 </script> 103 </body> 104 </html>
原文:http://www.cnblogs.com/forgere/p/5152066.html