Advertisement

用过渡,3D旋转, 3D平移等实现简单的立方体旋转

阅读量:

一,写法思路:

设置一个容器,里面嵌套6个项目分别代表6个面,
容器设置相对定位,3d景深,立体中心点,3d展示方式
其项目设置:一个项目作为底面,四个项目按照情况进行3d翻转,最后一个进行3d平移达到封顶面的效果

二,效果如下:

三,结构代码:

复制代码
 <body>

    
     <div class="box">
    
     <div class="box1">1</div>
    
     <div class="box2">2</div>
    
     <div class="box3">3</div>
    
     <div class="box4">4</div>
    
     <div class="box5">5</div>
    
     <div class="box6">6</div>
    
     </div>
    
 </body>
    
    
    
    

四,没旋转之前的样子:

五, css代码如下

复制代码
>       1. <style>

>  
>       2.         .box{
>  
>       3.             width: 300px;
>  
>       4.             height: 300px;
>  
>       5.             border: 1px solid #333;
>  
>       6.                 /* 相对定位*/
>  
>       7.             position: relative;
>  
>       8.             margin: 100px auto;
>  
>       9.  
>  
>       10.                 /* 设置景深*/
>  
>       11.             perspective: 12000px;
>  
>       12.  
>  
>       13.                 /* 确定立体中心点*/
>  
>       14.             perspective-origin: 50% 50%;
>  
>       15.  
>  
>       16.                /* 表示在3D空间中展示 */
>  
>       17.             transform-style: preserve-3d;
>  
>       18.  
>  
>       19.                 /*过渡 */
>  
>       20.             transition: all 8s;
>  
>       21.         }
>  
>       22.         .box>div{
>  
>       23.             width: 100px;
>  
>       24.             height: 100px;
>  
>       25.  
>  
>       26.             /*绝对定位 */
>  
>       27.             position: absolute;
>  
>       28.  
>  
>       29.             font-size: 20px;
>  
>       30.             font-weight: bold;
>  
>       31.             line-height: 100px;
>  
>       32.             text-align: center;
>  
>       33.             /*透明度*/
>  
>       34.             opacity: 0.5;
>  
>       35.  
>  
>       36.         }
>  
>       37.  
>  
>       38.         .box1{
>  
>       39.             top: 0px;
>  
>       40.             left: 100px;
>  
>       41.             background-color:red;
>  
>       42.  
>  
>       43.             /*设置当前项目旋转边为下 */
>  
>       44.             transform-origin: bottom;
>  
>       45.  
>  
>       46.             /* 围绕旋转边 逆时针 旋转90度*/
>  
>       47.             transform: rotateX(-90deg);
>  
>       48.         }
>  
>       49.         .box2{
>  
>       50.             top: 100px;
>  
>       51.             left: 0;
>  
>       52.             background-color: orange;
>  
>       53.  
>  
>       54.            /*设置当前项目旋转边为右 */
>  
>       55.             transform-origin: right;
>  
>       56.  
>  
>       57.             /*围绕旋转边 顺时针 旋转90度*/
>  
>       58.             transform: rotateY(90deg);
>  
>       59.         }
>  
>       60.         .box3{
>  
>       61.             top: 100px;
>  
>       62.             left: 100px;
>  
>       63.             background-color: skyblue;
>  
>       64.  
>  
>       65.         }
>  
>       66.         .box4{
>  
>       67.             top: 100px;
>  
>       68.             left: 100px;
>  
>       69.             background-color: green;
>  
>       70.  
>  
>       71.             /*z轴平移时,正值相当于向你靠近,负值远离你*/
>  
>       72.             transform: translateZ(100px);
>  
>       73.  
>  
>       74.  
>  
>       75.         }
>  
>       76.         .box5{
>  
>       77.             top: 100px;
>  
>       78.             left: 200px;
>  
>       79.             background-color: blue;
>  
>       80.  
>  
>       81.             /*设置当前项目旋转边为左 */
>  
>       82.             transform-origin: left;
>  
>       83.              /*围绕旋转边 逆时针 旋转90度*/
>  
>       84.             transform: rotateY(-90deg);
>  
>       85.         }
>  
>       86.         .box6{
>  
>       87.             top: 200px;
>  
>       88.             left: 100px;
>  
>       89.             background-color: purple;
>  
>       90.  
>  
>       91.             /*设置当前项目旋转边为上 */
>  
>       92.             transform-origin: top;
>  
>       93.  
>  
>       94.              /*围绕旋转边 顺时针 旋转90度*/
>  
>       95.             transform: rotateX(90deg);
>  
>       96.         }
>  
>       97.  
>  
>       98.         .box:hover{
>  
>       99.             /* 鼠标滑过时,沿着底面顺时针旋转720度*/
>  
>       100.             transform: rotateX(720deg);
>  
>       101.         }
>  
>       102.     </style>
>  
>  
>  
>  
> ```
>
>

全部评论 (0)

还没有任何评论哟~