css3之3d变形transform - 立方体效果

 

 1. 立方体的上下:

        .cubeBottom{

            transform: rotateX(90deg) ;
            transform-origin:center bottom  ; /* :绕x旋转,主要确定y的高度 : right bottom , 1px  300px, 2px  300px,.. 100px 300px .. */
        }

   2. 立方体的左右:

        .cubeLeft{
            transform: rotateY(90deg) ;
            transform-origin:left center  ; /* :绕Y旋转,主要确定x  : left bottom , left  300px, 0  300px,..0 500px .. */
        }

 3. 立方体的前后:

  

     .cubeFront{
            transform:translateZ(0px);
        }
        .cubeBack{
            transform:translateZ(-300px);
        }

  

 

 4 立方体实现:注意

/*  透视中心和透视距离*/
perspective-origin: 0 1000px ;
perspective: 2000px;
/*  效果: 平面还是3d立体 */
transform-style: preserve-3d;



源代码:
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>3d </title>
    <style>
        .con{ position: relative;
            width: 80%;
            height: 900px;
            margin: 0 auto;
            perspective-origin:  0 1000px ;
            perspective: 2000px;

        }
        .cubeBox{position: relative;
            width: 300px;
            height: 300px;
            margin: 0 auto;
            /* 效果: 平面还是3d立体 */
            transform-style: preserve-3d;
        }
        .cube{ position:absolute  ;
            left: 50%;
            margin-left: -151px;
            width: 300px;
            height: 300px;
            line-height: 300px;
            border: 1px dotted black;
            text-indent:-9999px ;
            font-size: 56px;
            text-align: center;

        }
        .cube{
            backface-visibility: visible;

        }
        .cubeBottom{

            transform: rotateX(90deg) ;
            transform-origin:center bottom  ; /* :绕x旋转,主要确定y的高度 : right bottom , 1px  300px, 2px  300px,.. 100px 300px .. */
        }
        .cubeTop{
            transform: rotateX(-90deg) ;
            transform-origin:center top ;/* :绕x旋转,主要确定y的高度 :right top , center top ,1px 0px, 2px  0px,.. 100px 0px .. */
        }
        .cubeLeft{
            transform: rotateY(90deg) ;
            transform-origin:left center  ; /* :绕Y旋转,主要确定x  : left bottom , left  300px, 0  300px,..0 500px .. */
        }
        .cubeRight{
            transform: rotateY(-90deg) ;
            transform-origin:right center ;/* :绕Y旋转,主要确定x :right top , right 0 ,300px 100px, 300px  200px,.. 300px 0px .. */
        }


        .cubeFront{
            transform:translateZ(0px);
        }
        .cubeBack{
            transform:translateZ(-300px);
        }
    </style>
</head>
<body>
<div class="con">
    <div class="cubeBox">
        <div class="cube cubeBack">back</div>
        <div class="cube cubeBottom">Bottom</div>
        <div class="cube cubeTop">Top</div>
        <div class="cube cubeLeft">Left</div>
        <div class="cube cubeRight">Right</div>
        <div class="cube cubeFront">front</div>
    </div>

</div>

</body>
</html>

  

 

 5 立方体实现-动画实现立方体   

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>3d </title>
    <style>
        .con{ position: relative;
            width: 80%;
            height: 900px;
            margin: 0 auto;
            perspective-origin:  0 1000px ;
            perspective: 2000px;

        }
        .cubeBox{position: relative;
            width: 300px;
            height: 300px;
            margin: 0 auto;
            /* 效果: 平面还是3d立体 */
            transform-style: preserve-3d;
        }
        .cube{ position:absolute  ;
            left: 50%;
            margin-left: -151px;
            width: 300px;
            height: 300px;
            line-height: 300px;
            border: 1px dotted black;
            text-indent:-9999px ;
            font-size: 56px;
            text-align: center;

        }
        .cube{
            backface-visibility: visible;

        }
        .cubeBottom{
            animation: KF_cubeBottom 2s  ease 1s both  ;
            transform-origin:center bottom  ; /* :绕x旋转,确定y的高度 : right bottom , 1px  300px, 2px  300px,.. 100px 300px .. */
        }
        .cubeTop{
            animation: KF_cubeTop 2s  ease 3s both ;
            transform-origin:center top ;/* :绕x旋转,确定y的高度 :right top , center top ,1px 0px, 2px  0px,.. 100px 0px .. */
        }
        .cubeLeft{
            animation: KF_cubeLeft 2s  ease 5s both ;
            transform-origin:left center  ; /* :绕Y旋转,确定x  : left bottom , left  300px, 0  300px,..0 500px .. */
        }
        .cubeRight{
            animation: KF_cubeRight 2s  ease 7s both ;
            transform-origin:right center ;/* :绕Y旋转,确定x :right top , right 0 ,300px 100px, 300px  200px,.. 300px 0px .. */
        }

        .cubeFront{
            animation: KF_cubeFront 2s  ease 9s both ;
            transform:translateZ(0px);
        }
        .cubeBack{
            animation: KF_cubeBack 2s  ease 0s both ;
            transform:translateZ(-300px);
        }

 
        @keyframes   KF_cubeBottom{
            0%{ transform:none;  background: none; }
            100%{
                text-indent:0px ;
                background: rgba(0,0,0,0.3);
                transform: rotateX(90deg) ;
            }
        }

        @keyframes   KF_cubeTop{
            0%{ transform:none; }
            100%{
                text-indent:0px ;
                transform: rotateX(-90deg) ;
            }
        }

        @keyframes   KF_cubeLeft{
            0%{ transform:none; }
            100%{
                text-indent:0px ;
                transform: rotateY(90deg) ;
            }
        }
        @keyframes   KF_cubeRight{
            0%{ transform:none; }
            100%{
                text-indent:0px ;
                transform: rotateY(-90deg) ;
            }
        }

        @keyframes KF_cubeBack  {
            0%{ transform:none; }
            100%{
                text-indent:0px ;
                transform:translateZ(0px);
            }
        }
        @keyframes KF_cubeFront  {
            0%{ transform:none; }
            100%{
                text-indent:0px ;
                transform:translateZ(-300px);
            }
        }

    </style>
</head>
<body>
<div class="con">
    <div class="cubeBox">
        <div class="cube cubeBack">back</div>
        <div class="cube cubeBottom">Bottom</div>
        <div class="cube cubeTop">Top</div>
        <div class="cube cubeLeft">Left</div>
        <div class="cube cubeRight">Right</div>
        <div class="cube cubeFront">front</div>
    </div>

</div>

</body>
</html>

  

  

posted @ 2016-09-01 17:01  July_Zheng  阅读(938)  评论(0编辑  收藏  举报