分享一个css3立方体小动画
Html
<ul>
<li>
<img src="./media/2.jpg" alt="">
</li>
<li>
<img src="./media/4.jpg" alt="">
</li>
<li>
<img src="./media/6.jpg" alt="">
</li>
<li>
<img src="./media/11.jpg" alt="">
</li>
<li>
<img src="./media/12.jpg" alt="">
</li>
<li>
<img src="./media/13.jpg" alt="">
</li>
</ul>
Css
* {
margin: 0;
padding: 0;
}
body {
/* margin: 50px auto; */
padding: 200px 300px;
}
ul {
position: relative;
list-style: none;
width: 300px;
height: 300px;
transform-style: preserve-3d;
transform: rotate3d(1,1,0,-45deg);
animation: rotate 6s linear infinite alternate;
}
ul > li {
position: absolute;
top: 0;
left: 0;
width: 300px;
height: 300px;
line-height: 300px;
text-align: center;
font-size: 40px;
font-family: '华文琥珀';
}
ul li img {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
li:first-child {
background-color: skyblue;
transform: translateZ(150px);
}
li:nth-child(2) {
background-color: #222222;
transform: translateZ(-150px) ;
}
li:nth-child(3) {
background-color: yellow;
transform: translateX(-150px) rotateY(90deg);
}
li:nth-child(4) {
background-color: pink;
transform: translateX(150px) rotateY(90deg);
}
li:nth-child(5) {
background-color: green;
transform: translateY(-150px) rotateX(90deg);
}
li:nth-child(6) {
background-color: blue;
transform: translateY(150px) rotateX(-90deg);
}
动画规则
@keyframes rotate {
0% {
transform: rotateY(0deg) rotateX(0deg) rotateZ(0deg);
}
20% {
transform: translate(300px,300px) rotateY(30deg) rotateX(40deg) rotateZ(20deg);
}
40% {
transform: translate(200px,-150px) rotateY(-60deg) rotateX(-40deg) rotateZ(-20deg);
}
60% {
transform: translate(500px,200px) rotateY(145deg) rotateX(80deg) rotateZ(10deg);
}
80% {
transform: translate(-250px,-300px) rotateY(90deg) rotateX(60deg) rotateZ(-20deg);
}
100% {
transform: rotateY(135deg) rotateX(-45deg) rotateZ(30deg);
}
}
效果