css3实现一个旋转木马

这是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);
        }

这样一个旋转木马动画就做好了,看看效果图

 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值