这是html部分,放上8个图片
<section class="box">
<div><img src="img/iu.png" alt=""></div>
<div><img src="img/iu2.png" alt=""></div>
<div><img src="img/lin.png" alt=""></div>
<div><img src="img/lin1.png" alt=""></div>
<div><img src="img/lin2.png" alt=""></div>
<div><img src="img/pen.png" alt=""></div>
<div><img src="img/pen1.png" alt=""></div>
<div><img src="img/pen3.png" alt=""></div>
</section>
接下来给body加一个透视,让我们可以看出近大远小,当然数值可以根据你的需求修改,
如果你不知道它的作用,可以修改几个数值,然后运行时就可以看出区别
body {
perspective: 1200px;
}
定义一个旋转的动画,让它沿着Y轴进行360°的旋转
@keyframes rotate {
0% {
}
100% {
transform: rotateY(360deg);
}
}
接下来box盒子
.box {
position: relative;
height: 200px;
width: 300px;
margin: 150px auto;
background: url(img/iu4.png) no-repeat center;
animation: rotate 15s linear infinite;
/* 将刚才写的rotate动画绑定到box盒子里,转一圈15秒,linear是匀速,infinite是无限循环*/
transform-style: preserve-3d;
/*开启3d效果,让子元素处于3d空间内*/
}
如果想让鼠标经过时动画暂停,可以加入这句话
.box:hover {
animation-play-state: paused;
}
给div加上定位,不然不起作用,还有让图片都一样大,不然旋转后看起来别扭
.box div {
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
}
.box div img {
width: 100%;
height: 100%;
}
接下来是让每一个img图片移动到相对应的位置
.box div:nth-child(1) {
transform: rotateY(0) translateZ(450px);
}
.box div:nth-child(2) {
transform: rotateY(45deg) translateZ(450px);
}
.box div:nth-child(3) {
transform: rotateY(90deg) translateZ(450px);
}
.box div:nth-child(4) {
transform: rotateY(135deg) translateZ(450px);
}
.box div:nth-child(5) {
transform: rotateY(180deg) translateZ(450px);
}
.box div:nth-child(6) {
transform: rotateY(225deg) translateZ(450px);
}
.box div:nth-child(7) {
transform: rotateY(270deg) translateZ(450px);
}
.box div:nth-child(8) {
transform: rotateY(315deg) translateZ(450px);
}
这样一个旋转木马动画就做好了,看看效果图