除了偏移量之外,是否有一种方法可以使客户获得与文档有关的元素的权限? 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)的top
和left
值。如果希望它们相对于文档(不受滚动位置的影响),则可以使用window.scrollY
和window.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/