除了偏移量之外,是否有一种方法可以使客户获得与文档有关的元素的权限? getBoundingClientRect()获取相对于客户端浏览器的值。

我正在使用D3,而jQuery的height()width()都无法正常工作(我什至尝试过使用window.load()),但是offset()可以。 javascripts .offset都不是

return [$e.offset().top + $e.height()/2, $e.offset().left + $e.width()/2]
$e.height()$e.width()都返回0
这是SVG元素,我只是用它来编辑我的SVG。使用D3加载/处理SVG更加容易。该项目与数据无关,只是一张 map 。

最佳答案

像您发现的那样,单独使用element.getBoundingClientRect()会返回相对于视口(viewport)的topleft值。如果希望它们相对于文档(不受滚动位置的影响),则可以使用window.scrollYwindow.scrollX添加滚动位置,如下所示:

const rect = element.getBoundingClientRect()

rect.left                   // (relative to viewport)
rect.top                    // (relative to viewport)
rect.left + window.scrollX  // (relative to document)
rect.top + window.scrollY   // (relative to document)

Source

关于javascript - GetBoundingClientRect但相对于整个文档,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16949642/

10-09 02:14