【发布时间】:2019-02-03 03:42:49
【问题描述】:
我的问题是这个问题的延伸: D3.js: How to get the computed width and height for an arbitrary element?
然而,就我而言,我想获得由 D3 创建的 组 元素的计算高度。
组中的项目创建如下:
const boxGroup = mainArea.selectAll('.boxes-user')
.data(data)
.enter()
.append("g")
.attr('id', (d) => 'bars-user-' + d[0].userId )
.attr("transform", (d) => {
currentRow = currentRow + 1;
return "translate( 0, " + ((rowHeight * currentRow) + (20 * currentRow)) + ")"
});
这会创建多个<g> 元素。 data 数组中的每一项对应一个。
我希望能够确定每个生成的.boxes-user 组的计算最终高度。
这可能吗?如果是,如何?
【问题讨论】:
-
如果您在元素加载到 DOM 后获取此信息,您可以使用
document.getElementById('your-elemet-id').getBoundingClientRect().height也可能对这个包感兴趣 npmjs.com/package/svg-path-properties -
我希望它成为 D3 代码的一部分,因为我想使用这些信息来定位其他元素
-
在回调中使用全局变量
currentRow是非常糟糕的做法。你有(d,i) => { ... }来获取索引 -
@rioV8 谢谢我会修复它!
标签: javascript d3.js dom svg