css - 如何更改 css transform-origin 但保留转换

标签 css css-transforms

这个问题的大局是我有一个需要响应触摸手势的转换 map ,它需要从用户手势的中心缩放和旋转。

transform-origin 需要在每个新手势上改变但不改变旋转和缩放,基本上我想添加一个平移来补偿 transform-origin 的变化?

或者是否有一种方法可以在更改变换原点的同时使用矩阵变换来保留变换?

最佳答案

我确信有很多方法可以实现这一点,但听起来您的方向是正确的。我创建了一个 codepen demo对其进行原型(prototype)设计,似乎诀窍是在翻译的开头添加负偏移量,然后在末尾添加正偏移量。

.box {
    transform: rotateX(45deg) scale(1.4);
    transform-origin: 10px 10px;
}

.box.is-active {
    transform: translate(-50px, -50px) rotateX(45deg) scale(1.4) translate(50px, 50px);
    transform-origin: 60px 60px;
}

我不确定这对于更复杂的转换会如何表现,但它似乎适用于简单的转换。

关于css - 如何更改 css transform-origin 但保留转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40748452/

相关文章:

jquery - iframe 高度自动调整大小

html - 如何在我们的网站上使用我们的自定义字体

jquery - Bootstrap - 旋转木马 - 删除额外的空间

css - 变换: translateY(-50%) --- Chrome "invalid property value" error, 为什么?

css - :hover works only on lower part of rotateX transformed div

html - 我正在尝试删除空间,并且在侧面滑动和缓出的图像不会在纯 CSS 中缩放

javascript - Webpack 没有加载 css

css - 使用百分比边距居中 div

css - 滚动页面时在 iPad 上使用 CSS 转换/翻译时出现故障

css - 如何在父级悬停时将 css 转换应用于子级