【发布时间】:2015-03-31 10:49:41
【问题描述】:
我有一个图像,通过应用带有一些透视的z translate,视觉上应该变得更大。 我需要计算 z 方向 dist 的平移距离,这将导致初始图像投影的大小增加一些 factor。
【问题讨论】:
标签: css matrix css-transforms webkit-perspective
我有一个图像,通过应用带有一些透视的z translate,视觉上应该变得更大。 我需要计算 z 方向 dist 的平移距离,这将导致初始图像投影的大小增加一些 factor。
【问题讨论】:
标签: css matrix css-transforms webkit-perspective
perspective 属性设置观察者到场景的距离;这与从观察者到初始(未转换)元素的距离相同。
当你应用变换时,会改变这个位置,因此元素的最终距离会减少这个量。
元素的父级大小将与此变化成正比
初始距离 = 透视
最终距离 = 透视 - translate-z
比率 = 初始 / 最终
如果perspective是1000px,translateZ是750px,那么最终的距离是250px,比例是4。图片会得到4x的缩放效果
逆演算是:
translateZ = 视角 * (1 - 因子)
以 1000 像素视角和 750 像素平移实现 4 倍的示例
.base {
width: 100px;
height: 100px;
perspective: 1000px;
perspective-origin: -3px -2px;
border: solid 1px red;
}
.transform {
width: 25px;
height: 25px;
border: solid 1px blue;
transform: translateZ(750px);
left: 34px;
top: 34px;
}
<div class="base">
<div class="transform"></div>
</div>
【讨论】: