Javascript 如何获取CSS3-3d转换元素的屏幕位置?

Javascript 如何获取CSS3-3d转换元素的屏幕位置?,javascript,css,css-transforms,webkit-transform,Javascript,Css,Css Transforms,Webkit Transform,我有一个基于CSS3的非常复杂的站点,它包含html元素,经过3d转换、旋转、翻转、折叠,并且通常都会扭曲 我试图找出其中一个元素在屏幕上的位置,但没有找到任何方法。我想知道是否有人有什么独创性的想法 或者,如果有人能解释-webkit透视图背后的数学原理,我可以找出位置,因为这是我唯一不确定如何建模的事情。问题是,CSS3转换实际上并没有改变元素在视图中的位置。当然,浏览器“知道”它们被重新定位,因为它会呈现它们,但是这些信息不会提供给DOM/API 我能想到的唯一一件事,就是自己根据变换计算

我有一个基于CSS3的非常复杂的站点,它包含html元素,经过3d转换、旋转、翻转、折叠,并且通常都会扭曲

我试图找出其中一个元素在屏幕上的位置,但没有找到任何方法。我想知道是否有人有什么独创性的想法


或者,如果有人能解释
-webkit透视图
背后的数学原理,我可以找出位置,因为这是我唯一不确定如何建模的事情。

问题是,CSS3转换实际上并没有改变元素在视图中的位置。当然,浏览器“知道”它们被重新定位,因为它会呈现它们,但是这些信息不会提供给DOM/API

我能想到的唯一一件事,就是自己根据变换计算位置,因为这些是“简单的”

不幸的是,代数课已经太久了,我不能再告诉你们怎么做了——只是这是可能的。

你们试过使用吗

我过去曾成功地使用它来计算使用
transform
属性进行转换的元素的尺寸。

使用它是一个好主意,但它只会为您提供包含形状的矩形的坐标,而不是4个上左、下右、下左的精确坐标,右上角


只有通过获取每个未转换的坐标并通过javascript应用转换,才能做到这一点

是的,我知道问题是什么:)我很乐意自己计算,但正如我所说的,我不知道
-webkit透视图
背后的数学是什么。它的作用有点像焦距控制,但wtf确实意味着什么?!?看看three.js的css3drender。根据我的记忆,他们获取相机的视野(fov),然后将其乘以宽度或高度,得到透视图。因此,它与这些有关。请将此作为对已接受答案的评论发布,而不是添加新答案,这样您就可以发布一些脚本来实现
getBoundingClientRect X transform metrix
只需添加即可。如果元素具有
变换样式:preserve-3d
它将更改从该函数返回的值。让它尊重3d世界,而不是