欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

CSS3实现旋转的魔法盒子

程序员文章站 2022-05-29 13:15:06
...

在学习CSS3的强大动画效果的时候被深深震撼,在B站观看学习视频并且仿照着写了一个页面,效果和代码如下:

CSS3实现旋转的魔法盒子

代码如下html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link href="../css/magicBox.css" rel="stylesheet" type="text/css" />
    <title>to your girl friend</title>
</head>
<body>
    <div class="container">
        <div class="outer-box">
            <div class="front"></div>
            <div class="back"></div>
            <div class="up"></div>
            <div class="down"></div>
            <div class="left"></div>
            <div class="right"></div>
        </div>
        

        <div class="inner-box">
            <div class="front"></div>
            <div class="back"></div>
            <div class="up"></div>
            <div class="down"></div>
            <div class="left"></div>
            <div class="right"></div>
        </div>


    </div>
</body>
</html>

css代码如下:

*{
    margin: 0;
    padding: 0;
}

html,body{
    width: 100%;
    height: 100%;
    background-color: pink;
}

.container{
    width: 400px;
    height: 440px;
    margin: 200px auto;
    /* flat	表示所有子元素在2D平面呈现;  preserve-3d 表示所有子元素在3D空间呈现*/
    transform-style: preserve-3d;       
    animation: rotate 8s linear infinite;
}

.container>.inner-box, .container>.outer-box{
    transform-style: preserve-3d;
}

.container div{
    position: absolute;
    transition: all .4s;
}

.outer-box div{
    position: absolute;
    width: 300px;
    height: 300px;
    opacity: 0.9;
    top: 200px;
    left: 0px;

}

.inner-box div{
    width: 200px;
    height: 200px;
    opacity: 0.9;
    top: 250px;
    left: 50px;
}

/* outer box*/
.outer-box>.front{
    background-image: url("../images/img1.jpg");
    background-size: 100%;
    background-repeat: no-repeat;
    transform: translateZ(150px);
}

.outer-box>.back{
    background-image: url("../images/img1.jpg");
    background-size: 100%;
    background-repeat: no-repeat;
    transform: translateZ(-150px);
}

.outer-box>.left{
    background-image: url("../images/img1.jpg");
    background-size: 100%;
    background-repeat: no-repeat;
    transform: rotateY(90deg) translateZ(150px);
}

.outer-box>.right{
    background-image: url("../images/img1.jpg");
    background-size: 100%;
    background-repeat: no-repeat;
    transform: rotateY(-90deg) translateZ(150px);
}

.outer-box>.up{
    background-image: url("../images/img1.jpg");
    background-size: 100%;
    background-repeat: no-repeat;
    transform: rotateX(-90deg) translateZ(-150px);
}

.outer-box>.down{
    background-image: url("../images/img1.jpg");
    background-size: 100%;
    background-repeat: no-repeat;
    transform: rotateX(-90deg) translateZ(150px);
}

/*inner box*/
.inner-box>.front{
    background-image: url("../images/img1.jpg");
    background-size: 100%;
    background-repeat: no-repeat;
    transform: translateZ(100px);
}

.inner-box>.back{
    background-image: url("../images/img1.jpg");
    background-size: 100%;
    background-repeat: no-repeat;
    transform: translateZ(-100px);
}

.inner-box>.left{
    background-image: url("../images/img1.jpg");
    background-size: 100%;
    background-repeat: no-repeat;
    transform: rotateY(90deg) translateZ(100px);
}

.inner-box>.right{
    background-image: url("../images/img1.jpg");
    background-size: 100%;
    background-repeat: no-repeat;
    transform: rotateY(-90deg) translateZ(100px);
}

.inner-box>.up{
    background-image: url("../images/img1.jpg");
    background-size: 100%;
    background-repeat: no-repeat;
    transform: rotateX(-90deg) translateZ(-100px);
}

.inner-box>.down{
    background-image: url("../images/img1.jpg");
    background-size: 100%;
    background-repeat: no-repeat;
    transform: rotateX(-90deg) translateZ(100px);
}

/* when you put the cursor on*/
.container:hover{
    cursor: pointer;
}

.container:hover .outer-box>.front{
    background-image: url("../images/img1.jpg");
    background-size: 100%;
    background-repeat: no-repeat;
    transform: translateZ(200px);
}

.container:hover .outer-box>.back{
    background-image: url("../images/img1.jpg");
    background-size: 100%;
    background-repeat: no-repeat;
    transform: translateZ(-200px);
}

.container:hover .outer-box>.left{
    background-image: url("../images/img1.jpg");
    background-size: 100%;
    background-repeat: no-repeat;
    transform: rotateY(90deg) translateZ(200px);
}

.container:hover .outer-box>.right{
    background-image: url("../images/img1.jpg");
    background-size: 100%;
    background-repeat: no-repeat;
    transform: rotateY(-90deg) translateZ(200px);
}

.container:hover .outer-box>.up{
    background-image: url("../images/img1.jpg");
    background-size: 100%;
    background-repeat: no-repeat;
    transform: rotateX(-90deg) translateZ(-200px);
}

.container:hover .outer-box>.down{
    background-image: url("../images/img1.jpg");
    background-size: 100%;
    background-repeat: no-repeat;
    transform: rotateX(-90deg) translateZ(200px);
}



@keyframes rotate{
    from{
        transform-origin:center center;
        transform: rotateX(0deg) rotateY(0deg);
    }
    to {
        transform-origin:center center;
        transform: rotateX(360deg) rotateY(360deg);
    }
}

 

相关标签: 重学前端----css篇