【问题标题】:In a CSS transform, how to prevent shifting of scaled up element when scaling down在 CSS 转换中,如何防止在缩小时移动放大的元素
【发布时间】:2021-03-22 22:39:55
【问题描述】:

我想使用 css 在鼠标悬停时放大元素,并在鼠标离开元素时再次缩小元素。在所有缩放过程中,左上边缘应保持不变。

以下代码几乎完成了我想要的操作,只是当我离开鼠标时,元素在缩小之前向左移动。我希望缩小从放大后的结束位置开始。

我怎样才能做到这一点?

#test {
  height: 100px;
  width: 100px;
  background-color: lightgray;
  margin-left: 100px;
  margin-top: 100px;
  transition: transform 2s;
}  
#test:hover {
  transform: scale(2);
  transform-origin: left top;
}
<div id="test">Text</div>

【问题讨论】:

    标签: css css-animations css-transitions css-transforms


    【解决方案1】:

    发生这种情况的原因是您在第一次悬停元素时声明了transform-origin

    解决方案: 将transform-origin: left top;#test:hover 移动到#test

    【讨论】:

    • 没问题。我编辑了你的问题代码 - 添加了 sn-p 来演示这个问题。享受代码!
    • 很好,再次感谢。事实上,我很高兴在这个小小的挂断之后我可以继续编写我的网站:-)
    猜你喜欢
    • 2021-05-20
    • 2015-11-02
    • 1970-01-01
    • 2019-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-31
    • 2012-11-26
    相关资源
    最近更新 更多