【问题标题】:Only transition a transform in css?仅在 css 中转换转换?
【发布时间】:2016-12-31 21:30:55
【问题描述】:

您好,我只想转换我的 css 转换,而不是其他任何东西。很难通过文字来解释,所以请查看下面的代码:

HTML:

<section class="success">
    <ul>
       <li>
           <div class="circle-spin-wrapper">
               <img src="ellipse_sm_blue.png" >
           </div>
       </li>
    </ul>
</section>

CSS:

.circle-spin-wrapper {
    transition: all 1s ease;
}

.success li:hover .circle-spin-wrapper {
    transform:scale(1.25);
    position: relative;
    top: 95px;
}

如您所见,我有一个 div,当您将鼠标悬停在它上面时,它会缩放 1.25。它也向下移动 95 像素,顶部:95 像素;

过渡有效,但它会同时转换比例(1.25)和顶部:95px。

我想使过渡(过渡:全 1 轻松;)仅适用于 transform:scale(1.25) 而不是顶部:95px。

我知道它与转换 css 中的“all”关键字有关,但我不知道用什么替换它以仅针对转换。

我尝试将“all”替换为“transform”和“scale”,但没有成功。

有人有什么建议吗?

谢谢!

【问题讨论】:

标签: html css css-transitions css-transforms


【解决方案1】:

我尝试将“all”替换为“transform”和“scale”,但没有成功。

将“all”替换为“transform”正是您应该做的 - 这将导致转换仅适用于 transform 属性。在没有看到其余代码的情况下很难调试为什么它不工作 - 你能设置一个快速的 CodePen 吗?

【讨论】:

    【解决方案2】:

    .circle-spin-wrapper {
      transition: transform 1s ease;
      -webkit-transition: -webkit-transform 1s ease;
    }
    .success li:hover .circle-spin-wrapper {
      transform: scale(1.25);
      position: relative;
      top: 95px;
    }
    <section class="success">
      <ul>
        <li>
          <div class="circle-spin-wrapper">
            <img src="test.jpg">
          </div>
        </li>
      </ul>
    </section>

    这应该可以。注意:“-webkit-transition:-webkit-transform 1s ease;”用于野生动物园

    【讨论】:

      【解决方案3】:
      .circle-spin-wrapper {
          transition: transform 1s ease;
      }
      

      但它看起来有问题,因为.circle-spin-wrapper 没有设置宽度,所以它是页面的全宽,这意味着.circle-spin-wrapper 变为页面宽度的 125%,并且里面的图像移出页面。

      解决方案?在.circle-spin-wrapper 上设置宽度。

      【讨论】:

        【解决方案4】:

        正如你所说,在你的transition 中使用transform 而不是all。它确实有效!

        可能是您缺少的供应商前缀。尝试添加它。

        .circle-spin-wrapper {
            transition: transform 1s ease;
        }
        
        .success li:hover .circle-spin-wrapper {
            transform:scale(1.25);
            position: relative;
            top: 95px;
        }
        <section class="success">
            <ul>
               <li>
                   <div class="circle-spin-wrapper">
                       <img src="http://placehold.it/50x50" >
                   </div>
               </li>
              </ul>
        </section>

        【讨论】:

        • 感谢您的回答,肯定是其他css的另一个问题
        • @kukuz 是的,我的 html 结构有点被抬高了,我觉得问一个在问题中有解决方案的问题大声笑。感谢您的帮助!
        猜你喜欢
        • 1970-01-01
        • 2014-07-29
        • 2013-10-11
        • 2020-09-05
        • 1970-01-01
        • 2018-02-15
        • 2016-04-27
        • 2020-01-26
        • 2021-12-28
        相关资源
        最近更新 更多