最近在慕課網上學習css3的3D效果,主要用到perspctive,perspective-origin transform-style:presersve-3d,javascript
perspective:800 主要是創造一個3D場景,800指的是從屏幕看3D場景的距離,其子元素會得到透視效果,而不是元素自己css
perspective-origin:50% 50% 看3D場景的位置,從正中心觀看,默認(50% 50%)html
transform-style:presersve-3d 使被轉換的子元素保留其3D轉換java
transform-origin: x-axis y-axis z-axis,默認(50%,50%,0)css3
<div class="my3dspace"> <div class="pagegroup"> <div class="page" id="page1">1</div> <div class="page" id="page2">2</div> <div class="page" id="page3">3</div> <div class="page" id="page4">4</div> <div class="page" id="page5">5</div> <div class="page" id="page6">6</div> </div> </div> <a href="javascript:next();">next</a> <a href="javascript:pre();">pre</a>
.my3dspace{-webkit-perspective:800;overflow:hidden;} .pagegroup{width:400px;height:400px;margin:0 auto;-webkit-transform-style:preserve-3d;position:relative;} .page{position:absolute;width:360px;height:360px;padding:20px;box-sizing:content-box;font-size:100px;text-align:center;line-height:380px;background:#333;color:#fff;} #page1{-webkit-transform-origin:bottom;-webkit-transition:-webkit-transform 1s linear;} #page2, #page3, #page4, #page5, #page6{-webkit-transform-origin:bottom;-webkit-transform:rotateX(90deg);-webkit-transition:-webkit-transform 1s linear;}
<script> var curindex=1 function next(){ if(curindex==6) return; var curentElement=document.getElementById("page"+curindex); curentElement.style.webkitTransform="rotateX(-90deg)"; curindex++; var curentElement=document.getElementById("page"+curindex); curentElement.style.webkitTransform="rotateX(0deg)"; } function pre(){ if(curindex==1) return; var curentElement=document.getElementById("page"+curindex); curentElement.style.webkitTransform="rotateX(90deg)"; curindex--; var curentElement=document.getElementById("page"+curindex); curentElement.style.webkitTransform="rotateX(0deg)"; } </script>