D3扩展矩形的文本未调整

时间:2016-10-26 13:48:38

标签: d3.js

我有一个矩形和一个通过D3创建的文本,它们如下组合在一起。

<g>
<rect></rect>
<text></text>
</g>

在javascript函数中,我正在扩展此矩形的宽度,以允许一次显示文本的值。 (如果值太长,则动态设置文本值)。这工作正常。但是,即使矩形宽度根据文本值大小而扩展,D3文本元素也不会显示添加的完整文本值,最终文本将移动到左侧,并且无法看到它的第一位。

我是否还需要增加文本元素的宽度或者解决此问题的方法?

[UPDATE]

以下是当前的代码。

var elms = d3.selectAll("[id=s]"); // has the rectangle and text elements 
        var s  = d3.selectAll("[id=s]").selectAll("text"); // just the text elements
       var minimumValue = 100;
        // updating rectangle width 
       elms.attr('width', function() { return dynamic < minimumValue ? minimumValue : dynamic;});

现在我需要一种方法来在展开矩形时更新文本元素的位置。希望这更清楚。我只是尝试手动更新有效的文本元素的'x'属性。但是我可以动态地导出这个值来在这个函数中设置它吗?

1 个答案:

答案 0 :(得分:0)

如果有人正在寻找这个,能够获得新的文字&#39; x&#39;矩形的x值+矩形宽度的一半(y的值与高度相似)。

从这个链接(How to place and center text in an SVG rectangle

得到答案