如何使用javascript获取html元素的x、y位置

如何使用javascript获取html元素的x、y位置,javascript,html,dom,getelementbyid,Javascript,Html,Dom,Getelementbyid,我在我的html文档中有几个带有特定css类的div元素,我想得到这些元素的x,y位置,提前谢谢 使用getBoundingClientRect: 例如: var div = document.getElementById("yourDiv"); var rect = div.getBoundingClientRect(); alert("Coordinates: " + rect.left + "px, " + rect.top + "px"); 请记住,getBoundingClient

我在我的html文档中有几个带有特定css类的div元素,我想得到这些元素的x,y位置,提前谢谢

使用
getBoundingClientRect

例如:

var div = document.getElementById("yourDiv");
var rect = div.getBoundingClientRect();
alert("Coordinates: " + rect.left + "px, " + rect.top + "px");

请记住,
getBoundingClientRect
提供了相对于当前视口的坐标,这意味着如果您想知道相对于
文档主体的坐标,必须添加水平和垂直滚动量(
document.documentElement.scrollLeft
document.body.scrollLeft
用于Firefox,当然还有
.scrollTop

如果我理解,您想这样做

下面的示例展示了如何检索HTML元素的ClientRect

# first tag link of this page
document.getElementsByClassName('post-taglist')[0].children[0].getClientRects()[0]
# question div
document.getElementById('question').getClientRects()[0]

使用它,您可以访问右、上、高、宽、左和下属性。

获取与什么相关的x、y位置?文档/窗口?或其父对象?获取文档中的x、y位置。
getClientRects
太过了,您不需要知道所有这些。获取所有矩形的主要原因是如果您想知道位置tion和text.NM行的大小。遗漏了MaxArt在其他地方写的东西。啊,是的。如果你想支持旧客户端,阅读效果很好。但是该页面需要更新。哦,真的吗?你能解释一下缺失的内容吗?正如我在回答中指出的,
getBoundingClientRect
是一个很好的工具,所有的客户端都支持它ajor浏览器。它确实简化了事情。并不是说旧的quirksmode.org代码不再工作了……它只是速度较慢。如果我正在编写一个交叉浏览器规范化库,如果没有Rect,我会使用这个解决方案。