css 多张图片围绕中心点旋转

文章详细描述了如何使用HTML和CSS3(包括transform,perspective,transition和animation属性)创建一个带有视差滚动效果的3D旋转展示,包含多个球体和基础元素的动画变换。
摘要由CSDN通过智能技术生成

效果图
在这里插入图片描述

 <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
    #content {
        margin-top: 100px;
  width: 100%;
  height: 100%;
}

.ball {
  position: relative;
  overflow: visible !important;
}

.ditu {
  width: 127px !important;
    height: 67px !important;
    left: -12px;
    top: 86px;
  position: absolute;
}

.fdj {
  width: 82px !important;
    height: 119px !important;
  margin-left: 10px;
}

.span {
  position: absolute;
  color: black;
    left: 18px;
    top: -33px;
  font-size: 12px;
}
/*旋转部分、、、、、、、、、、、、、、、、、、、、、、、、、、*/
.section3 {
    position: relative;
    top: -65px;
    left: 30px;
}

.u_p3d {
    -webkit-transform-style: preserve-3d;
    -ms-transform-style: preserve-3d;
    -o-transform-style: preserve-3d;
    -moz-transform-style: preserve-3d;
    transform-style: preserve-3d;
}

.section3 .ui_base {
    position: relative;
    top: 90px;
    left: 280px;
    width: 400px;
    height: 0px;
    -webkit-perspective: 1000px;
    -moz-perspective: 1000px;
    -ms-perspective: 1000px;
    -o-perspective: 1000px;
    perspective: 1000px;
    -webkit-perspective-origin: 50% 0%;
    -moz-perspective-origin: 50% 0%;
    -o-perspective-origin: 50% 0%;
    -ms-perspective-origin: 50% 0%;
    perspective-origin: 50% 0%
}

.section3 .ball_c {
    -webkit-transform-origin: 50% 50%;
    -moz-transform-origin: 50% 50%;
    -ms-transform-origin: 50% 50%;
    -o-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    position: absolute;
    width: 225px;
    height: 157px;
    line-height: 157px;
    text-align: center;
    left: 90px;
    top: 100px;
}

.section3 .ball_c img {
    width: 125px;
    height: 125px;
    border-radius: 10px;
}

.section3 .ball_c p {
    margin-top: -70px;
}

.section3 .ball_c p a {
    font-size: 19px;
    font-family: ""
}

.section3 .base {
    -webkit-transform: rotateX(80deg) rotateY(-10deg);
    -moz-transform: rotateX(80deg) rotateY(-10deg);
    -o-transform: rotateX(80deg) rotateY(-10deg);
    -ms-transform: rotateX(80deg) rotateY(-10deg);
    transform: rotateX(80deg) rotateY(-10deg);
    position: relative;
    width: 350px;
    height: 350px;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    top: -38px;
    left: 40px;
}

.section3 .ball_base {
    -webkit-transform-origin: 225px 0px;
    -moz-transform-origin: 225px 0px;
    -ms-transform-origin: 225px 0px;
    -o-transform-origin: 225px 0px;
    transform-origin: 225px 0px;
    position: absolute;
    top: 175px;
    left: -50px;
    width: 225px;
    height: 127px
}

.section3 .ball_1 {
    -webkit-transform: rotateX(-90deg) rotateY(0deg) translateY(-70px);
    -o-transform: rotateX(-90deg) rotateY(0deg) translateY(-70px);
    -moz-transform: rotateX(-90deg) rotateY(0deg) translateY(-70px);
    -ms-transform: rotateX(-90deg) rotateY(0deg) translateY(-70px);
    transform: rotateX(-90deg) rotateY(0deg) translateY(-70px)
}

.section3 .ball_2 {
    -webkit-transform: rotateX(-90deg) rotateY(60deg) translateY(-70px);
    -moz-transform: rotateX(-90deg) rotateY(60deg) translateY(-70px);
    -o-transform: rotateX(-90deg) rotateY(60deg) translateY(-70px);
    -ms-transform: rotateX(-90deg) rotateY(60deg) translateY(-70px);
    transform: rotateX(-90deg) rotateY(60deg) translateY(-70px)
}

.section3 .ball_3 {
    -webkit-transform: rotateX(-90deg) rotateY(120deg) translateY(-70px);
    -o-transform: rotateX(-90deg) rotateY(120deg) translateY(-70px);
    -ms-transform: rotateX(-90deg) rotateY(120deg) translateY(-70px);
    -moz-transform: rotateX(-90deg) rotateY(120deg) translateY(-70px);
    transform: rotateX(-90deg) rotateY(120deg) translateY(-70px)
}

.section3 .ball_4 {
    -webkit-transform: rotateX(-90deg) rotateY(180deg) translateY(-70px);
    -moz-transform: rotateX(-90deg) rotateY(180deg) translateY(-70px);
    -ms-transform: rotateX(-90deg) rotateY(180deg) translateY(-70px);
    -o-transform: rotateX(-90deg) rotateY(180deg) translateY(-70px);
    transform: rotateX(-90deg) rotateY(180deg) translateY(-70px)
}

.section3 .ball_5 {
    -webkit-transform: rotateX(-90deg) rotateY(240deg) translateY(-70px);
    -moz-transform: rotateX(-90deg) rotateY(240deg) translateY(-70px);
    -o-transform: rotateX(-90deg) rotateY(240deg) translateY(-70px);
    -ms-transform: rotateX(-90deg) rotateY(240deg) translateY(-70px);
    transform: rotateX(-90deg) rotateY(240deg) translateY(-70px)
}

.section3 .ball_6 {
    -webkit-transform: rotateX(-90deg) rotateY(300deg) translateY(-70px);
    -ms-transform: rotateX(-90deg) rotateY(300deg) translateY(-70px);
    -o-transform: rotateX(-90deg) rotateY(300deg) translateY(-70px);
    -moz-transform: rotateX(-90deg) rotateY(300deg) translateY(-70px);
    transform: rotateX(-90deg) rotateY(300deg) translateY(-70px)
}

.section3 .ball_1 .ball {
    -webkit-transform: rotateY(10deg) rotateZ(0deg);;
    -moz-transform: rotateY(10deg) rotateZ(0deg);;
    -o-transform: rotateY(10deg) rotateZ(0deg);;
    -ms-transform: rotateY(10deg) rotateZ(0deg);;
    transform: rotateY(10deg) rotateZ(0deg);
}

.section3 .ball_2 .ball {
    -webkit-transform: rotateY(-50deg) rotateZ(0deg);;
    -o-transform: rotateY(-50deg) rotateZ(0deg);;
    -ms-transform: rotateY(-50deg) rotateZ(0deg);;
    -moz-transform: rotateY(-50deg) rotateZ(0deg);;
    transform: rotateY(-50deg) rotateZ(0deg);
}

.section3 .ball_3 .ball {
    -webkit-transform: rotateY(-110deg) rotateZ(0deg);;
    -o-transform: rotateY(-110deg) rotateZ(0deg);;
    -moz-transform: rotateY(-110deg) rotateZ(0deg);;
    -ms-transform: rotateY(-110deg) rotateZ(0deg);;
    transform: rotateY(-110deg) rotateZ(0deg);
}

.section3 .ball_4 .ball {
    -webkit-transform: rotateY(-170deg) rotateZ(0deg);;
    -o-transform: rotateY(-170deg) rotateZ(0deg);;
    -moz-transform: rotateY(-170deg) rotateZ(0deg);;
    -ms-transform: rotateY(-170deg) rotateZ(0deg);;
    transform: rotateY(-170deg) rotateZ(0deg);
}

.section3 .ball_5 .ball {
    -webkit-transform: rotateY(-230deg) rotateZ(0deg);;
    -o-transform: rotateY(-230deg) rotateZ(0deg);;
    -moz-transform: rotateY(-230deg) rotateZ(0deg);;
    -ms-transform: rotateY(-230deg) rotateZ(0deg);;
    transform: rotateY(-230deg) rotateZ(0deg);
}

.section3 .ball_6 .ball {
    -webkit-transform: rotateY(-290deg) rotateZ(0deg);;
    -o-transform: rotateY(-290deg) rotateZ(0deg);;
    -ms-transform: rotateY(-290deg) rotateZ(0deg);;
    -moz-transform: rotateY(-290deg) rotateZ(0deg);;
    transform: rotateY(-290deg) rotateZ(0deg);
}

.section3 .ball {
    -webkit-transition: all 2s ease-out 0ms;
    -o-transition: all 2s ease-out 0ms;
    -moz-transition: all 2s ease-out 0ms;
    -ms-transition: all 2s ease-out 0ms;
    transition: all 2s ease-out 0ms;
    -webkit-transform-origin: 50% 50%;
    -o-transform-origin: 50% 50%;
    -ms-transform-origin: 50% 50%;
    -moz-transform-origin: 50% 50%;
    transform-origin: 50% 50%;
    position: absolute;
    left: -200px;
    top: -30px;
    overflow: hidden;
}

.section3 .ball img {
    width: 110px;
    height: 110px;
}

.section3 .ball_1 .ball {
    -webkit-transition-delay: 1100ms;
    -o-transition-delay: 1100ms;
    -moz-transition-delay: 1100ms;
    -ms-transition-delay: 1100ms;
    transition-delay: 1100ms;
}

.section3 .ball_2 .ball {
    -webkit-transition-delay: 900ms;
    -moz-transition-delay: 900ms;
    -o-transition-delay: 900ms;
    -ms-transition-delay: 900ms;
    transition-delay: 900ms;
}

.section3 .ball_3 .ball {
    -webkit-transition-delay: 700ms;
    -o-transition-delay: 700ms;
    -ms-transition-delay: 700ms;
    -moz-transition-delay: 700ms;
    transition-delay: 700ms;
}

.section3 .ball_4 .ball {
    -webkit-transition-delay: 500ms;
    -o-transition-delay: 500ms;
    -ms-transition-delay: 500ms;
    -moz-transition-delay: 500ms;
    transition-delay: 500ms;
}

.section3 .ball_5 .ball {
    -webkit-transition-delay: 300ms;
    -moz-transition-delay: 300ms;
    -ms-transition-delay: 300ms;
    -o-transition-delay: 300ms;
    transition-delay: 300ms;
}

.section3 .ball_6 .ball {
    -webkit-transition-delay: 100ms;
    -o-transition-delay: 100ms;
    -ms-transition-delay: 100ms;
    -moz-transition-delay: 100ms;
    transition-delay: 100ms;
}

.section3 .ball_1 .ball {
    -webkit-animation: cir1 28s linear 0s infinite;
    -o-animation: cir1 28s linear 0s infinite;
    -ms-animation: cir1 28s linear 0s infinite;
    -moz-animation: cir1 28s linear 0s infinite;
    animation: cir1 28s linear 0s infinite
}

.section3 .ball_2 .ball {
    -webkit-animation: cir2 28s linear 0s infinite;
    -o-animation: cir2 28s linear 0s infinite;
    -ms-animation: cir2 28s linear 0s infinite;
    -moz-animation: cir2 28s linear 0s infinite;
    animation: cir2 28s linear 0s infinite
}

.section3 .ball_3 .ball {
    -webkit-animation: cir3 28s linear 0s infinite;
    -o-animation: cir3 28s linear 0s infinite;
    -ms-animation: cir3 28s linear 0s infinite;
    -moz-animation: cir3 28s linear 0s infinite;
    animation: cir3 28s linear 0s infinite
}

.section3 .ball_4 .ball {
    -webkit-animation: cir4 28s linear 0s infinite;
    -o-animation: cir4 28s linear 0s infinite;
    -ms-animation: cir4 28s linear 0s infinite;
    -moz-animation: cir4 28s linear 0s infinite;
    animation: cir4 28s linear 0s infinite
}

.section3 .ball_5 .ball {
    -webkit-animation: cir5 28s linear 0s infinite;
    -o-animation: cir5 28s linear 0s infinite;
    -ms-animation: cir5 28s linear 0s infinite;
    -moz-animation: cir5 28s linear 0s infinite;
    animation: cir5 28s linear 0s infinite
}

.section3 .ball_6 .ball {
    -webkit-animation: cir6 28s linear 0s infinite;
    -o-animation: cir6 28s linear 0s infinite;
    -ms-animation: cir6 28s linear 0s infinite;
    -moz-animation: cir6 28s linear 0s infinite;
    animation: cir6 28s linear 0s infinite
}

.section3 .base {
    -webkit-animation: cir 28s linear 0s infinite;
    -o-animation: cir 28s linear 0s infinite;
    -ms-animation: cir 28s linear 0s infinite;
    -mozanimation: cir 28s linear 0s infinite;
    animation: cir 28s linear 0s infinite
}

@-webkit-keyframes cir1 {
    0% {
        -webkit-transform: rotateY(0deg) rotateZ(0deg)
    }
    100% {
        -webkit-transform: rotateY(-360deg) rotateZ(0deg)
    }
}

@keyframes cir1 {
    0% {
        transform: rotateY(0deg) rotateZ(0deg)
    }
    100% {
        transform: rotateY(-360deg) rotateZ(0deg)
    }
}

@-webkit-keyframes cir2 {
    0% {
        -webkit-transform: rotateY(-60deg) rotateZ(0deg);
    }
    100% {
        -webkit-transform: rotateY(-420deg) rotateZ(0deg);
    }
}

@keyframes cir2 {
    0% {
        transform: rotateY(-60deg) rotateZ(0deg);
    }
    100% {
        transform: rotateY(-420deg) rotateZ(0deg);
    }
}

@-webkit-keyframes cir3 {
    0% {
        -webkit-transform: rotateY(-120deg) rotateZ(0deg);
    }
    100% {
        -webkit-transform: rotateY(-480deg) rotateZ(0deg);
    }
}

@keyframes cir3 {
    0% {
        transform: rotateY(-120deg) rotateZ(0deg);
    }
    100% {
        transform: rotateY(-480deg) rotateZ(0deg);
    }
}

@-webkit-keyframes cir4 {
    0% {
        -webkit-transform: rotateY(-180deg) rotateZ(0deg);
    }
    100% {
        -webkit-transform: rotateY(-540deg) rotateZ(0deg);
    }
}

@keyframes cir4 {
    0% {
        transform: rotateY(-180deg) rotateZ(0deg);
    }
    100% {
        transform: rotateY(-540deg) rotateZ(0deg);
    }
}

@-webkit-keyframes cir5 {
    0% {
        -webkit-transform: rotateY(-240deg) rotateZ(0deg);
    }
    100% {
        -webkit-transform: rotateY(-600deg) rotateZ(0deg);
    }
}

@keyframes cir5 {
    0% {
        transform: rotateY(-240deg) rotateZ(0deg);
    }
    100% {
        transform: rotateY(-600deg) rotateZ(0deg);
    }
}

@-webkit-keyframes cir6 {
    0% {
        -webkit-transform: rotateY(-300deg) rotateZ(0deg);
    }
    100% {
        -webkit-transform: rotateY(-660deg) rotateZ(0deg);
    }
}

@keyframes cir6 {
    0% {
        transform: rotateY(-300deg) rotateZ(0deg);
    }
    100% {
        transform: rotateY(-660deg) rotateZ(0deg);
    }
}

@keyframes cir {
    0% {
        transform: rotateX(80deg) rotateY(0deg) rotateZ(0deg)
    }
    100% {
        transform: rotateX(80deg) rotateY(0deg) rotateZ(-360deg)
    }
}

@-webkit-keyframes cir {
    0% {
        -webkit-transform: rotateX(80deg) rotateY(0deg) rotateZ(0deg)
    }
    100% {
        -webkit-transform: rotateX(80deg) rotateY(0deg) rotateZ(-360deg)
    }
}



</style>
<body>
    <div id="content">
        <div class="inner pr">
          <div class="con_bg ">
            <div class="section3">
              <div class="u_fr">
                <div class="ui_base u_p3d">
                  <div class="ball_c"></div>
                  <div class="base u_p3d">
                    <div class="ball_base u_p3d ball_1">
                      <div class="ball">
                        <span class="span">发动机名称</span>
                        <img class="fdj" src="../img/fdj.png" alt="">
                        <img class="ditu" src="../img/dt.png" alt="">
                      </div>
                    </div>
                    <div class="ball_base u_p3d ball_2">
                      <div class="ball">
                        <span class="span">发动机名称</span>
                        <img class="fdj" src="../img/fdj.png" alt="">
                        <img class="ditu" src="../img/dt.png" alt="">
                      </div>
                    </div>
                    <div class="ball_base u_p3d ball_3">
                      <div class="ball">
                        <span class="span">发动机名称</span>
                        <img class="fdj" src="../img/fdj.png" alt="">
                        <img class="ditu" src="../img/dt.png" alt="">
                      </div>
                    </div>
                    <div class="ball_base u_p3d ball_4">
                      <div class="ball">
                        <span class="span">发动机名称</span>
                        <img class="fdj" src="../img/fdj.png" alt="">
                        <img class="ditu" src="../img/dt.png" alt="">
                      </div>
                    </div>
                    <div class="ball_base u_p3d ball_5">
                      <div class="ball">
                        <span class="span">发动机名称</span>
                        <img class="fdj" src="../img/fdj.png" alt="">
                        <img class="ditu" src="../img/dt.png" alt="">
                      </div>
                    </div>
                    <div class="ball_base u_p3d ball_6">
                      <div class="ball">
                        <span class="span">发动机名称</span>
                        <img class="fdj" src="../img/fdj.png" alt="">
                        <img class="ditu" src="../img/dt.png" alt="">
                      </div>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值