CSS3 3D效果

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=640,user-scalable=no,target-densitydpi=device-dpi" />  
    <meta name="apple-mobile-web-app-capable" content="yes"/>  
    <meta name="apple-mobile-web-app-status-bar-style" content="black"/>  
    <meta name="format-detection" content="telephone=no"/>  
  
    <style>
        *{
            margin:0;
            padding: 0;
        }
        .demo{
            width:500px;
            height:500px;
            margin:50px;
            overflow: hidden;
            -webkit-perspective: 800;
            -webkit-perspective-origin: 50% 50%;
            display: inline-block;
        }
       
        .block{
            color:white;  
            position: relative;
            font-size: 450px;
            text-align: center;
            line-height: 500px; 
           -webkit-transform-style: preserve-3d;
           float:left;

        }
        .block li{
            list-style-type: none;
            width:500px;
            height:500px;
            background:#000;
            position: absolute;
            top:0;
            left:0;
            -webkit-transition:-webkit-transform 0.5s linear;
            -webkit-transform:rotate3d(1,0,0,90deg);
            -webkit-transform-origin:bottom;

        }
        .block .l1{
            -webkit-transform:rotate3d(1,0,0,0deg);
        }

        .block2{
            -webkit-transform-style: preserve-3d;
            position: relative;
            -webkit-animation:totate 13s linear infinite;
            top:50%;
            left:50%;
            margin:-150px 0 0 -150px;
            width: 300px;
            height:300px;
           
        }
        @-webkit-keyframes totate{
            0%{
                -webkit-transform:rotateX(0) rotateY(360deg) rotateZ(180deg) translate3d(0,0,150px);
            }
            100%{
                 -webkit-transform:rotateX(360deg) rotateY(0deg) rotateZ(360deg) translate3d(0,0,150px);
            }
        }
        .block2 li{
            color:white;  
            width:300px;
            height:300px;
            font-size: 250px;
            text-align: center;
            line-height: 300px; 
            background:rgba(0,0,0,0.3);
            position: absolute;
            top:0;
             list-style-type: none;

        }
        .l5{
            left:0;
        }

        .l6{
          -webkit-transform:translate3d(150px,0,-150px) rotate3d(0,1,0,90deg);  
          
        
        }
        .l7{
         -webkit-transform:translate3d(0,0,-300px) rotate3d(0,1,0,180deg);  
          
         
        }
        .l8{
            -webkit-transform:translate3d(-150px,0,-150px) rotate3d(0,1,0,270deg);  
          
        }
        .l9{
          -webkit-transform:translate3d(0,0,0) rotate3d(1,0,0,-90deg);  
           -webkit-transform-origin:top;
        
        }
        .l10{
         -webkit-transform:translate3d(0,0,0) rotate3d(1,0,0,90deg);  
           -webkit-transform-origin:bottom;
         
        }

    </style>
</head>
<body>
    <div class="demo">
        <ul class="block">
            <li class="l1">1</li>
            <li class="l2">2</li>
            <li class="l3">3</li>
            <li class="l4">4</li>
        </ul>
    </div>
    <div class="demo" class="demo2">
        <ul class="block2">
            <li class="l5">1</li>
            <li class="l6">2</li>
            <li class="l7">3</li>
            <li class="l8">4</li>
            <li class="l9">5</li>
            <li class="l10">6</li>
        </ul>
    </div>
    <button id="next">next</button>
    <button id="prev">prev</button>
</body>
<script>
    !(function(win,doc){
         var i=1;
         next.onclick=function(){
            if(i>3)return;
            var oli=doc.querySelector(".l"+i),
                olinext=doc.querySelector(".l"+(i+1));
            oli.style.webkitTransform="rotate3d(1,0,0,"+(-90)+"deg)";
            olinext.style.webkitTransform="rotate3d(1,0,0,"+(0)+"deg)";
            i++;
         }
         prev.onclick=function(){
            if(i<2)return;
            var oli=doc.querySelector(".l"+i),
                olinext=doc.querySelector(".l"+(i-1));
            oli.style.webkitTransform="rotate3d(1,0,0,"+(90)+"deg)";
            olinext.style.webkitTransform="rotate3d(1,0,0,"+(0)+"deg)";
            i--;
         }
    })(window,document)

</script>
</html>