使用翻译模拟 Transform-Origin:解决缩放和旋转偏差
在 CSS 中,transform-origin 属性允许精确定位元素的位置围绕特定点进行变换。然而,仅使用transform:translate 复制其功能可能会带来挑战,尤其是在将其与缩放和旋转变换结合使用时。
根据 MDN 文档,使用translate 模拟变换原点涉及:
尽管采用了这种方法,开发人员在尝试模仿转换源行为时通常会遇到不正确的结果。以下是这些差异背后的原因:
1.翻译反转:
提供的 CSS 代码在 .translate 类中的翻译顺序中包含错误。为了正确模拟变换原点,初始翻译和最终翻译应该颠倒。这是修改后的代码:
.translate { transform: translate(100px, 100px) translate(100px, 0px) scale(2) rotate(45deg) translate(-100px, -100px); }
2. Transform-Origin的调整:
另一个问题在于.translate类的transform-origin属性。默认情况下,变换原点设置为中心 (50% 50%)。然而,为了匹配transform-origin的行为,我们需要将此参考点移动到元素的左上角(0 0)。
.translate { transform-origin: 0 0; ... }
通过合并这些修改,我们可以实现精确的模拟使用翻译的变换原点。这些更正应该可以解决原始 CSS 代码中观察到的缩放和旋转不一致的问题。
以上是单独翻译可以完美模仿 CSS Transform-Origin 吗?的详细内容。更多信息请关注PHP中文网其他相关文章!