And*_*ena 115 javascript d3.js
我需要准确知道我的任意g
元素的宽度和高度,SVG
因为我需要在用户点击它之后在其周围绘制一个选择标记.
我在互联网上看到的是:d3.select("myG").style("width")
.问题是元素不会总是具有明确的宽度属性集.例如,当我在其中创建一个圆时g
,它将具有radious(r
)设置而不是宽度.即使我window.getComputedStyle
在a上使用该方法circle
,它也会返回"auto".
有没有办法计算任意svg
元素的宽度D3
?
谢谢.
Chr*_*ett 213
使用像selection.node().getBBox()
你这样的东西得到像
{
height: 5,
width: 5,
y: 50,
x: 20
}
Run Code Online (Sandbox Code Playgroud)
使用 selection.node().getBoundingClientRect()
Mal*_*lil 26
.getBoundingClientRect()返回一个元素的大小及其相对于viewport的位置.我们可以很容易地得到以下内容
示例:
var element = d3.select('.elementClassName').node();
element.getBoundingClientRect().width;
Run Code Online (Sandbox Code Playgroud)