Home  >  Article  >  Web Front-end  >  Sample code for implementing 3D cube rotation effects using css

Sample code for implementing 3D cube rotation effects using css

高洛峰
高洛峰Original
2017-03-24 16:49:122942browse

This article introduces the sample code for implementing 3D cube rotation effects using css

Let’s first look at the effect after running

Sample code for implementing 3D cube rotation effects using css

Sample code for implementing 3D cube rotation effects using css

It is a cube that is constantly running

Let’s look at the html part of the code first

<p class="rect-wrap">   <!--舞台元素,设置perspective,让其子元素获得透视效果。-->
    <p class="container">   <!-- 容器,设置transform-style: preserve-3d,让其子元素在3D空间呈现-->
        <p class="top slide"></p>   <!--立方体的六个面-->
        <p class="bottom slide"></p>
        <p class="left slide"></p>
        <p class="right slide"></p>
        <p class="front slide"></p>
        <p class="back slide"></p>
    </p>
</p>

Build six p’s first and then set styles for them in sequence

Let’s take a look at their style sheets

<style type="text/css">
.rect-wrap {
    position: relative;
    perspective: 1600px;
}
.container {
    width: 800px;
    height: 800px;
    transform-style: preserve-3d;
    transform-origin: 50% 50% 200px;    /*设置3d空间的原点在平面中心再向Z轴移动200px的位置*/
}
.slide {
    width: 400px;
    height: 400px;
    position: absolute;  //定位
}
.top {
    left: 200px;
    top: -200px;
    transform: rotateX(-90deg);
    transform-origin: bottom;
    background-color:#C69
}
.bottom {
    left: 200px;
    bottom: -200px;
    transform: rotateX(90deg);
    transform-origin: top;
    background-color:#6FF
}
.left {
    left: -200px;
    top: 200px;
    transform: rotateY(90deg);
    transform-origin: right;
    background-color:#9F0
}
.right {
    left: 600px;
    top: 200px;
    transform: rotateY(-90deg);
    transform-origin: left;
    background-color:#33F
}
.front {
    left: 200px;
    top: 200px;
    transform: translateZ(400px);
    background-color:#366  /*立方体前面正对着屏幕,所以不用旋转,只需向Z轴前移动距离*/
     
}
.back {
    left: 200px;
    top: 200px;
    transform: translateZ(0);
    background-color:#09F   /*立方体后面正对着屏幕,所以不用旋转,只需向Z轴后移动距离*/
}
@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>


Only these codes can achieve 3D rotation

Also To turn it into a picture, you can do this

Sample code for implementing 3D cube rotation effects using css

Add a picture to each p, and then set a unified name for each picture, and then give them a unified style and set Just the height and width are fine

You can paste and copy the code, come and try it

Related articles:

Easy to make HTML5 page turning effect text effects

CSS more commonly used flip effects

Details introduction to how to implement HTML5 3D clothes swing animation special effects

The above is the detailed content of Sample code for implementing 3D cube rotation effects using css. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn