正方体的旋转实现

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            padding: 0;
            margin: 0;
            box-sizing: border-box;
        }
        .max {
            position: relative;
            width: 200px;
            height: 200px;
            margin: 100px auto;
            /* 保留3d效果属性 */
            transform-style: preserve-3d;
            /* 为了好观察 */
            transform: rotate3d(1,1,0,-45deg);
        }
        .side {
            position: absolute;
            left: 0;
            top: 0;
            width: 100%;
            height: 100%;
            line-height: 200px;
            text-align: center;
            font-size: 40px;
            color: #fff;
            transition: all 0.3s;
        }
        .front {
            background-color: rgba(233,23,45,.5);
            transform: translateZ(100px);
        }
        .back{
            background-color: rgba(122,134,233,0.5);
            transform: translateZ(-100px);
        }
        .left {
            background-color: rgba(55,222,15,0.5);
            transform: translateX(-100px) rotateY(-90deg);
        }
        .right {
            background-color: rgba(221,225,11,1);
            transform: translateX(100px) rotateY(90deg);
        }
        .top {
            background-color: rgba(12,255,233,0.5);
            transform: translateY(-100px) rotateX(90deg);
        }
        .bottom {
            background-color: rgba(0,20,25,0.5);
            transform: translateY(100px) rotateX(-90deg);
        }
        /* 旋转被抹掉  不保留记录!!! */
       .max:hover .front {
           transform: translateZ(200px);
       }
       .max:hover .back {
           transform: translateZ(-200px);
       }
       .max:hover .left {
           transform: rotateY(-90deg) translateZ(200px);
       }
       .max:hover .right {
           transform: rotateY(90deg) translateZ(200px);
       }
       .max:hover .top {
           transform: rotateX(90deg) translateZ(200px);
       }
       .max:hover .bottom {
           transform: rotateX(-90deg) translateZ(200px);
       }
    </style>
</head>
<body>
    <!-- 搭建立方体 6面体 -->
    <div class="max">
        <div class="side front">front</div>
        <div class="side back">back</div>
        <div class="side left">left</div>
        <div class="side right">right</div>
        <div class="side bottom">bottom</div>
        <div class="side top">top</div>
    </div>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/weixin_58139900/article/details/120733292