HTML表白器---做一个魔方旋转的效果

说明

魔方大家应该是不会陌生的,这次我们来一起用CSS实现一个魔方旋转的特效,先来看看效果图!

解释

我们要做这样的效果,重点在于怎么把6张图片,摆放成魔方的样子,而把它们摆放成魔方的样子,重点在于用好CSS的transform,这是非常重要的,好的,我们先拼出一个魔方的样子。 

å¾çæè¿°

代码:

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8" />
    <style>
        /*最外层容器样式*/
        .wrap {
            width: 200px;
            height: 200px;
            margin: 200px;
            position: relative;
        }

        /*包裹所有容器样式*/
        .cube {
            width: 200px;
            height: 200px;
            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);
        }
    </style>
</head>

<body>
    <!-- 外层最大容器 -->
    <div class="wrap">
        <!--包裹所有元素的容器-->
        <div class="cube">
            <!--前面图片 -->
            <div class="out_front">
                <img src="https://img-blog.csdn.net/20170716094246620" class="pic" />
            </div>
            <!--后面图片 -->
            <div class="out_back">
                <img src="https://img-blog.csdn.net/20170716094334594" class="pic" />
            </div>
            <!--左面图片 -->
            <div class="out_left">
                <img src="https://img-blog.csdn.net/20170716094400013" class="pic" />
            </div>
            <!--右面图片 -->
            <div class="out_right">
                <img src="https://img-blog.csdn.net/20170716094422331" class="pic" />
            </div>
            <!--上面图片 -->
            <div class="out_top">
                <img src="https://img-blog.csdn.net/20170716094444434" class="pic" />
            </div>
            <!--下面图片 -->
            <div class="out_bottom">
                <img src="https://img-blog.csdn.net/20170716094504432" class="pic" />
            </div>

            <!--小正方体 -->
            <span class="in_front">
                <img src="https://img-blog.csdn.net/20170716120759718" class="in_pic" />
            </span>
            <span class="in_back">
                 <img src="https://img-blog.csdn.net/20170716120759718" class="in_pic" />
            </span>
            <span class="in_left">
                <img src="https://img-blog.csdn.net/20170716120759718" class="in_pic" />
            </span>
            <span class="in_right">
                <img src="https://img-blog.csdn.net/20170716120759718" class="in_pic" />
            </span>
            <span class="in_top">
                <img src="https://img-blog.csdn.net/20170716120759718" class="in_pic" />
            </span>
            <span class="in_bottom">
                <img src="https://img-blog.csdn.net/20170716120759718" class="in_pic" />
            </span>
        </div>

    </div>
</body>

</html>
发布了16 篇原创文章 · 获赞 10 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43869290/article/details/98871477