javascript - 如何在 jQuery 中获取 div 元素的边界框

标签 javascript jquery html css svg

我想通过 jQuery/JavaScript 计算 div 元素的边界框。

我试过这样的:

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

它返回一些值。通过 jQuery/JavaScript 获取 div 元素的边界框的方法是否正确。

我需要在 SVG 元素中使用类似 getBBox() 的方法。它将返回元素的 xywidthheight。同样,如何获取 div 元素的边界框?

最佳答案

因为这是专门为 jQuery 标记的 -

$("#myElement")[0].getBoundingClientRect();

$("#myElement").get(0).getBoundingClientRect();

(它们在功能上是相同的,在一些较旧的浏览器中 .get() 稍微快一些)

请注意,如果您尝试通过 jQuery 调用获取值,那么它不会考虑任何 css 转换值,这可能会产生意想不到的结果...

注意 2:在 jQuery 3.0 中,它已更改为使用适当的 getBoundingClientRect() 调用它自己的维度调用(请参阅 jQuery Core 3.0 Upgrade Guide)——这意味着其他 jQuery 答案最终总是是正确的 - 但只有在使用新的 jQuery 版本时 - 因此它被称为重大变化......

关于javascript - 如何在 jQuery 中获取 div 元素的边界框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18780139/

相关文章:

jquery - 单击时删除 jquery css

html - WordPress加载更多帖子而ajax不起作用

javascript - 内容区域 div 上的表格溢出,当浏览器最小化时

javascript - 如何扩展 material-ui 组件

javascript - jquery 按钮类更改

javascript - 打破 .each() jquery 语句的最佳方法是什么?

html - Flexbox 在 IE 或 Chrome 中无法正确显示

javascript - HTML Canvas 和 Javascript - 图像周围的阴影而不是边框

javascript - 使用 jQuery 动态创建图形

javascript - 无法在 React.js 上从 svg 加载图像