正方体效果

正方体效果

正方体

理论上、现实世界及3次元世界中的各种有规律的运动效果都可以使用CSS3 transform 3D方法实现。文章最后的旋转效果可以说是各类千奇百怪效果中的沧海一粟~其他各类有的没有的效果还是需要大家自己的大脑去构想。至于实现方面,只要理解了,其实也就都是比较简单的

代码区

       /*最外层容器样式*/
        .wrap {
            width: 100px;
            height: 100px;
            margin: 150px;
            position: absolute;
            right: 0px;
            left: 0;
            top: 0;
            bottom: 0;
            margin: auto;
        }
        /*包裹所有容器样式*/
        .cube {
            width: 50px;
            height: 50px;
            margin: 0 auto;
            transform-style: preserve-3d;
            transform: rotateX(-30deg) rotateY(-80deg);
            animation: rotate linear 20s infinite;
        }

        @-webkit-keyframes rotate {
            from {
                transform: rotateX(0deg) rotateY(0deg);
            }
            to {
                transform: rotateX(360deg) rotateY(360deg);
            }
        }
        .cube div {
            position: absolute;
            width: 200px;
            height: 200px;
            opacity: 0.8;
            transition: all .4s;
        }

        /*定义所有图片样式*/
        .pic {
            width: 200px;
            height: 200px;
        }

        .cube .out_front {
            transform: rotateY(0deg) translateZ(100px);
        }

        .cube .out_back {
            transform: translateZ(-100px) rotateY(180deg);
        }

        .cube .out_left {
            transform: rotateY(-90deg) translateZ(100px);
        }

        .cube .out_right {
            transform: rotateY(90deg) translateZ(100px);
        }

        .cube .out_top {
            transform: rotateX(90deg) translateZ(100px);
        }

        .cube .out_bottom {
            transform: rotateX(-90deg) translateZ(100px);
        }

        /*定义小正方体样式*/
        .cube span {
            display: block;
            width: 100px;
            height: 100px;
            position: absolute;
            top: 50px;
            left: 50px;
        }

        .cube .in_pic {
            width: 100px;
            height: 100px;
        }

        .cube .in_front {
            transform: rotateY(0deg) translateZ(50px);
        }

        .cube .in_back {
            transform: translateZ(-50px) rotateY(180deg);
        }

        .cube .in_left {
            transform: rotateY(-90deg) translateZ(50px);
        }

        .cube .in_right {
            transform: rotateY(90deg) translateZ(50px);
        }

        .cube .in_top {
            transform: rotateX(90deg) translateZ(50px);
        }

        .cube .in_bottom {
            transform: rotateX(-90deg) translateZ(50px);
        }

        /*鼠标移入后样式*/
        .cube:hover .out_front {
            transform: rotateY(0deg) translateZ(200px);
        }

        .cube:hover .out_back {
            transform: translateZ(-200px) rotateY(180deg);
        }

        .cube:hover .out_left {
            transform: rotateY(-90deg) translateZ(200px);
        }

        .cube:hover .out_right {
            transform: rotateY(90deg) translateZ(200px);
        }

        .cube:hover .out_top {
            transform: rotateX(90deg) translateZ(200px);
        }

        .cube:hover .out_bottom {
            transform: rotateX(-90deg) translateZ(200px);
        }

dom结构

    <!-- 外层最大容器 -->
    <div class="wrap">
        <!--包裹所有元素的容器-->
        <div class="cube">
            <!--前面图片 -->
            <div class="out_front">
                <img src="http://fech.in/static/images/cover/write-blog-tools.jpeg" class="pic">
            </div>
            <!--后面图片 -->
            <div class="out_back">
                <img src="http://fech.in/static/images/cover/convert-excel-to-markdown-table.jpeg" class="pic">
            </div>
            <!--左面图片 -->
            <div class="out_left">
                <img src="http://fech.in/static/images/cover/pyspark-and-pandas.jpeg" class="pic">
            </div>
            <!--右面图片 -->
            <div class="out_right">
                <img src="http://fech.in/static/images/cover/ml02-knn.jpeg" class="pic">
            </div>
            <!--上面图片 -->
            <div class="out_top">
                <img src="http://fech.in/static/images/cover/ml01-overview.jpeg" class="pic">
            </div>
            <!--下面图片 -->
            <div class="out_bottom">
                <img src="http://fech.in/static/images/cover/export-excel-use-template.jpeg" class="pic">
            </div>

            <!--小正方体 -->
            <span class="in_front">
                <img src="http://fech.in/static/images/cover/5-linux-command-surprised.jpeg" class="in_pic">
            </span>
            <span class="in_back">
                 <img src="http://fech.in/static/images/cover/2017-1024.jpeg" class="in_pic">
            </span>
            <span class="in_left">
                <img src="http://fech.in/static/images/cover/tigase-pre-research-1.jpeg" class="in_pic">
            </span>
            <span class="in_right">
                <img src="http://fech.in/static/images/cover/javascript-dom-utils.jpeg" class="in_pic">
            </span>
            <span class="in_top">
                <img src="http://fech.in/static/images/cover/ml02-knn.jpeg" class="in_pic">
            </span>
            <span class="in_bottom">
                <img src="http://fech.in/static/images/cover/pyspark-and-pandas.jpeg" class="in_pic">
            </span>
        </div> 

   转载规则


《正方体效果》 echo丶若梦 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
linux 判断文件夹或文件是否存在 linux 判断文件夹或文件是否存在
文件夹不存在则创建if [ ! -d "/data/" ];then mkdir /data else echo "文件夹已经存在" fi 文件存在则删除if [ ! -f "/data/filename" ];then echo "文件不
2019-09-05 echo丶若梦
下一篇 
hexo博客 hexo博客
用Hexo写出第一篇博客经过一段时间的折腾终于用 Hexo + GitHub 搭建起了一个个人博客站点,第一时间边学边写,弄出了这第一篇博客,心里甚是欢喜.Hexo是一款“快速、简洁且高效的博客框架”,支持 Markdown 的所有功能。所
2019-09-04
  目录