CSS动画问题:拜托看下这个代码,是translate影响的吗,影响的transform-origin吗,为什么?

新手上路,请多包涵

帮忙看下这个代码,主要问题在于load-box里,我用绝对定位后left与translateX结合让这个盒子在父盒子水平居中,这个动画的效果应该使这个盒子自己转一圈,看倒的效果就是没有变化,但实际上使load-box这个子盒子移动了,是因为转换中心改变了吗,这是为什么

<style>
  .load {
    position: relative;
    width: 250px;
    height: 250px;
    background-color: rgba(0, 0, 0, .25);
    border-radius: 125px;
    margin: 50px auto;

  }

  .load-box {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: 100px;
    height: 100px;
    background-color: pink;
    border-radius: 50px;
    animation: circle-rotate 1s linear forwards;

  }

  @keyframes circle-rotate {
    0% {
      transform: rotateZ(0deg);
    }

    100% {
      transform: rotateZ(360deg);
    }
  }
</style>

<body>
  <div class="load">
    <div class="load-box"></div>
    <div class="load-box"></div>
    <div class="load-box"></div>
    <div class="load-box"></div>
    <div class="load-box"></div>
    <div class="load-box"></div>
    <div class="load-box"></div>
    <div class="load-box"></div>
  </div>

我试了下问题出在translateX上,注释掉translateX这个盒子就是本身旋转360度,但加上就不是了

阅读 754
1 个回答

circle-rotate中的transform生效的时候,.load-box中的transform就被覆盖了。

  @keyframes circle-rotate {
    0% {
      transform: translateX(-50%) rotateZ(0deg);
    }

    100% {
      transform: translateX(-50%) rotateZ(360deg);
    }
  }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏