使用transfrom来制作旋转木马

使用transfrom来制作旋转木马

使用的技术

  1. 绝对定位 position:relative;
  2. 相对定位 position:absolute;
  3. 3D转换 transfrom-style:perserve-3d;
  4. 基角(观察者角度) transfrom-origin:方向;
  5. perspective: n; 空间距离(转为3d) 有兼容性
    -webkit-perspective: n;
  6. 动画 @keyframes 名称{
    from{
    }
    to{
    }
    }
  7. 平移,转换 translateZ(npx) rotate(ndeg)

整体思路

  1. html 使用一个大的div包裹一个ul然后包裹li在包裹img
<div class="box">
            <ul class="content">
                  <li><img src="./mouse_cat_one.gif" alt=""></li>
                  <li><img src="./mouse_cat_two.gif" alt=""></li>
                  <li><img src="./mouse_cat_three.gif" alt=""></li>
                  <li><img src="./mouse.jpg" alt=""></li>
                  <li><img src="./cat.jpg" alt=""></li>
                  <li><img src="./page.jpg" alt=""></li>
                  <li><img src="./mouse_cat_four.gif" alt=""></li>
                  <li><img src="./mouse_cat_five.gif" alt=""></li>
                  <li><img src="./mouse_cat_sex.gif" alt=""></li>
                  <li><img src="./mouse_cat_seven.jpg" alt=""></li>
            </ul>
            
      </div>
  1. css 大的box设置perspective:3700;。 里面的content设置相对定位,并转化为3D模式,设置动画效果
*{
                  padding: 0px;
                  margin: 0px;
                  list-style: none;
            }
             .box{
                  width:300px ;
                  height:300px ;
                  margin:180px auto;
                  perspective: 3700;
                  -webkit-perspective: 3700;
                  perspective-origin: bottom;
            }
            .box .content{
                  width: 100%;
                  height:300px ;
                  margin:10px auto;
                  position: relative;
                  transform-style: preserve-3d;
                  background: url('./mouse_cat_bg.jpg') no-repeat ;
                  background-size: 100% 100%;
                  animation: abs 15s infinite linear;
                  

            }
  1. .box .content li 设置绝对定位使其脱离文档流
.box .content li{
                  position: absolute;
                  top: 0px;
                  left: 0px;
                  width: 100%;
                  height: 100%;
            }
            .box .content li img{
                 width: 100%;
                 height: 100%;
            }
  1. 最关键的一步 给li设置效果 rotateY:ndeg;旋转 translate:npx;Z轴平移
.box .content:hover li:nth-child(1){
                  transform:rotateY(0deg) translateZ(500px);
                  
            }
            .box .content:hover li:nth-child(2){
                  transform:rotateY(40deg) translateZ(500px);
            }
            .box .content:hover li:nth-child(3){
                  transform:rotateY(80deg) translateZ(500px);
            }
            .box .content:hover li:nth-child(4){
                  transform:rotateY(120deg) translateZ(500px);
            }
            .box .content:hover li:nth-child(5){
                  transform:rotateY(160deg) translateZ(500px);
            }
            .box .content:hover li:nth-child(6){
                  transform:rotateY(200deg) translateZ(500px);
            }
            .box .content:hover li:nth-child(7){
                  transform:rotateY(240deg) translateZ(500px);
            }
            .box .content:hover li:nth-child(8){
                  transform:rotateY(280deg) translateZ(500px);
            }
            .box .content:hover li:nth-child(9){
                  transform:rotateY(320deg) translateZ(500px);
            }
  1. 最后设置动画效果
@keyframes abs{
                  form{

                  }
                  to{
                        transform:rotateY(360deg) ;
                  }
            }```

![最后一个3D旋转木马出来了](https://img-blog.csdnimg.cn/1ce64ae631cd41018d0b1111205ec67d.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbHlq5LiA5Y-255-l56eL,size_20,color_FFFFFF,t_70,g_se,x_16)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值