我有一个图像,通过应用 z translate 和一些视角,视觉上应该变得更大。我需要计算 z 方向dist的平移距离,这将导致初始图像投影的尺寸增加一些因素。
问问题
165 次
1 回答
2
透视属性设置观察者到场景的距离;这与从观察者到初始(未转换)元素的距离相同。
当您应用变换时,会更改此位置,因此元素的最终距离将减少此数量。
元素的表观大小将与此变化成正比
初始距离=透视
最终距离 =透视-平移-z
比率=初始/最终
如果透视是1000px,translateZ是750px,这将导致最终距离为250px,比例为4。图像将获得4x的缩放效果
逆演算是:
translateZ = 透视 * (1 - 因子)
以 1000px 透视和平移 750px 实现因子 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>
于 2015-02-01T11:04:32.333 回答