2

有没有办法计算transform-origin' 对旋转元素“位置”的影响(更像是相对于文档的偏移量),无论角度如何?

假设我们有一个旋转90 度100px * 100px的正方形元素,它是。从下图中我们可以看出,旋转原点是中心。白点表示变换原点。transform-origin50px 50px

白点表示变换原点。

但是当我们移动变换原点时,元素也会移动。如果我们将变换原点的 x 轴增加1px( transform-origin: 51px 50px;),则元素似乎向上 1px向右 1px移动。分别在原点的 y 轴上,1px增加 ( transform-origin: 50px 51px;) 将元素向下 1px向右 1px移动。因此,即使是转换原点的轴值之一的更改也会影响元素在两个轴上的位置。如果原点的两个值以相同的比例增加,则效果会相互抵消或相互加强。

这是与transform-origin集合相同的正方形75px 75px,其中原点的 y 值的“向下”效果取消了 x 值的“向上”效果,因此元素在 y 轴方向上保持在相同的位置。两个值的“正确”效果相加,因此元素移动了两倍效果的距离 ( 2 * 25px) 与仅单个原点值的效果 ( 25px) 相比。

变换原点为 75px 75px

很明显transform-origin,如果您知道角度(在本例中90deg),则可以计算 对位置的影响。有人能想出一个公式,可以用任何角度或原点进行计算吗?(因此,与未转换状态相比,元素的位置是什么transform-origin,例如,如果243px -35px元素将旋转270 度。)我很确定可以计算,我只是不知道如何.

我不确定我是否可以理解地解释我的问题,所以如果您有任何问题,请提问!

4

0 回答 0