はい!
実際には、オフセットを見つけるための非常に簡単な式があります。ウィキペディアの3d Projection の記事には、図と式があります。
式は次のbx = ax * bz / az
とおりです。
ax
変換原点からの元の距離
az
はパースペクティブ + ネガティブtranslateZ
bz
は視点です
これにより、次のようになります。
したがって、次のことを知っておく必要があります。
bz
: perspective
(例: 1000px
)
ax
: 変換起点からのオフセット。例: 起点が 50% の場合、これtop
は親要素の中心に対する要素の相対位置である必要があります ( parent.height/2 + element.top
) -- としましょう。-500px
z
: 要素translateZ
(例: -600px
)
az
bz + z * -1
この場合は次のようになります。1000 + (-600 * -1) = 1600
式は次のとおりです。-500 * 1000 / 1600 = -312.5
要素は原点から垂直にオフセットさ-312.5px
れますが、元々は offset でしたが-500px
、2 つの数値の差はtop
、同等の新しい値を取得するために古い値に追加する必要があるものです。
この式は Y 軸にも当てはまります。
ここに簡単な例をまとめました: http://jsfiddle.net/trolleymusic/xYRgx/