1.思路
- 先准备一个盒子写相等的宽高,里面放六个相同子盒子标签,宽高都和父元素相等,然后同时将六个子元素定位,再通过3d旋转+位移使六个子元素到达指定位置,成为立方体的六个面,定义动画使其运动起来
2.步骤
<div class="p">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
</div>
body {
perspective: 500px;
}
- 3.父元素设置3d权限,子元素做3D转化可呈现出来
.p {
width: 300px;
height: 300px;
margin: 0 auto;
margin-top: 200px;
position: relative;
transform-style: preserve-3d;
transition: all 4s;
}
.p div {
position: absolute;
top: 0;
left: 0;
width: 300px;
height: 300px;
background-color: rgba(0, 0, 0, 0.5);
line-height: 300px;
text-align: center;
font-size: 100px;
color: #ffffff;
border: 2px solid yellow;
}
.p div:nth-child(1) {
transform: translateZ(150px);
}
.p div:nth-child(2) {
transform: translateX(-150px) rotateY(-90deg);
}
.p div:nth-child(3) {
transform: translateZ(-150px) rotateY(180deg);
}
.p div:nth-child(4) {
transform: translateX(150px) rotateY(90deg);
}
.p div:nth-child(5) {
transform: translateY(150px) rotateX(-90deg);
}
.p div:nth-child(6) {
transform: translateY(-150px) rotateX(90deg);
}
@keyframes sp {
0% {
transform: rotateY(0deg) rotateX(0deg);
}
100% {
transform: rotateY(360deg) rotateX(360deg);
}
}
.p {
animation: sp 2s linear infinite;
}
3.效果
