Javascript 有没有办法获取DOM元素的边界框(以像素为单位)?

Javascript 有没有办法获取DOM元素的边界框(以像素为单位)?,javascript,html,css,Javascript,Html,Css,有没有办法用Javascript获取DOM元素的边界框坐标 显然,我可以从各种CSS属性计算它:宽度,高度,等等 我这样问是因为还有很多其他的图形平台提供了这种方法。例如,显然可以按照在XUL中完成,它描述了一个方法getBoundingClientRect() (我的目标是检查两个元素是否重叠。)假设您的DOM元素具有IDmyElement document.getElementById("myElement").offsetLeft; //Left side of box document

有没有办法用Javascript获取DOM元素的边界框坐标

显然,我可以从各种CSS属性计算它:
宽度
高度
,等等

我这样问是因为还有很多其他的图形平台提供了这种方法。例如,显然可以按照在XUL中完成,它描述了一个方法
getBoundingClientRect()


(我的目标是检查两个元素是否重叠。)

假设您的DOM元素具有ID
myElement

document.getElementById("myElement").offsetLeft; //Left side of box 
document.getElementById("myElement").offsetTop;  //Top side of box 
document.getElementById("myElement").offsetLeft 
    + document.getElementById("myElement").offsetWidth; //Right side of box
document.getElementById("myElement").offsetTop
    + document.getElementById("myElement").offsetHeight; //Bottom side of box 
对于底部和右侧,代码基本上将边界框的宽度或高度添加到左侧或顶部

如果需要,可以定义一次
document.getElementById(“myElement”)
并使用引用,如下所示:

var myElement = document.getElementById("myElement");
myElement.offsetLeft; //Left side of box 
myElement.offsetTop;  //Top side of box 
myElement.offsetLeft + myElement.offsetWidth; //Right side of box
myElement.offsetTop + myElement.offsetHeight; //Bottom side of box 

实际上,有一个内置的方法来获取边框:
Element.getBoundingClientRect

该方法返回一个对象,该对象包含元素的(可视)顶部、右侧、底部和左侧坐标及其宽度和高度

更多信息:


这是一篇重复的文章,还是这些文章不是你问题的解决方案当我读到这篇文章时,它们听起来确实很相似。希望这些帮助。