zoukankan      html  css  js  c++  java
  • 3D立方体案例

    代码:

    <!DOCTYPE html>
    <html>
    
        <head>
            <meta charset="UTF-8">
            <title></title>
            <style type="text/css">
                .rect-wrap {
                    position: relative;
                    perspective: 1600px;
                    margin: auto;
                    margin-left: 500px;
                }
                .container {
                    width: 800px;
                    height: 800px;
                    transform-style: preserve-3d;
                    transform-origin: 50% 50% 200px; /*//设置3d空间的原点在平面中心再向Z轴移动200px的位置*/
                }
                .slide {
                    width: 400px;
                    height: 400px;
                    position: absolute;  /*//定位*/
                    opacity: 0.8;
                    font-size: 40px;
                }
                .top {
                    left: 200px;
                    top: -200px;
                    transform: rotateX(-90deg);
                    transform-origin: bottom;
                    background-color: royalblue;
                }
                .bottom {
                    left: 200px;
                    bottom: -200px;
                    transform: rotateX(90deg);
                    transform-origin: top;
                    background-color: firebrick;
                }
                .left {
                    left: -200px;
                    top: 200px;
                    transform: rotateY(90deg);
                    transform-origin: right;
                    background-color: deeppink;
                }
                .right {
                    left: 600px;
                    top: 200px;
                    transform: rotateY(-90deg);
                    transform-origin: left;
                    background-color: gold;
                }
                .front {
                    left: 200px;
                    top: 200px;
                    transform: translateZ(400px); /* //立方体前面正对着屏幕,所以不用旋转,只需向Z轴前移动距离*/
                    background-color: coral;
                }
                .back {
                    left: 200px;
                    top: 200px;
                    transform: translateZ(0);  /* //立方体后面正对着屏幕,所以不用旋转,只需向Z轴后移动距离*/
                    background-color: lightpink;
                }
                
                @keyframes rotate-frame {
                    0% {
                        transform: rotateX(0deg) rotateY(0deg);
                    }
                    10% {
                        transform: rotateX(0deg) rotateY(180deg);
                    }
                    20% {
                        transform: rotateX(-180deg) rotateY(180deg);
                    }
                    30% {
                        transform: rotateX(-360deg) rotateY(180deg);
                    }
                    40% {
                        transform: rotateX(-360deg) rotateY(360deg);
                    }
                    50% {
                        transform: rotateX(-180deg) rotateY(360deg);
                    }
                    60% {
                        transform: rotateX(90deg) rotateY(180deg);
                    }
                    70% {
                        transform: rotateX(0) rotateY(180deg);
                    }
                    80% {
                        transform: rotateX(90deg) rotateY(90deg);
                    }
                    90% {
                        transform: rotateX(90deg) rotateY(0);
                    }
                    100% {
                        transform: rotateX(0) rotateY(0);
                    }
                }
                .container{
                    animation: rotate-frame 30s linear infinite;
                }
                
            </style>
        </head>
    
        <body>
            <div class="rect-wrap"><!--//舞台元素,设置perspective,让其子元素获得透视效果。-->
                <div class="container"><!--//容器,设置transform-style: preserve-3d,让其子元素在3D空间呈现-->
                    <!-- //立方体的六个面-->
                    <div class="top slide"></div>
                    <div class="bottom slide"></div>
                    <div class="left slide"></div>
                    <div class="right slide"></div>
                    <div class="front slide"></div>
                    <div class="back slide"></div>
                </div>
            </div>
        </body>
    
    </html>

     效果:

  • 相关阅读:
    信息安全系统设计基础第十二周学习总结
    day07-流程控制之while循环
    day07-深浅拷贝
    第一次小测
    day05-与用户交互与运算符
    day05学习笔记-垃圾回收机制
    day04学习笔记-变量
    day03-python-学习笔记
    P4323-[JSOI2016]独特的树叶【换根dp,树哈希】
    CF990G-GCD Counting【dfs】
  • 原文地址:https://www.cnblogs.com/xiejn/p/12087965.html
Copyright © 2011-2022 走看看