HTML5 SVG:计算动态创建的SVG内容的文本大小

时间:2016-10-18 11:54:00

标签: javascript html5 svg

我的代码目前将内容添加到预先存在的SVG元素。为了计算将位于文本后面的元素的大小,需要知道下面添加的文本的大小。但是,添加后元素的尺寸不可立即显示(见下文):

var svgNode; // supplied earlier in the code
var svgNs = "http://www.w3.org/2000/svg";

var textNode = document.createElementNS(this.svgNs,"text");
textNode.setAttributeNS(null,'x','0');
textNode.setAttributeNS(null,'y','0');  
textNode.setAttributeNS(null,'class','node-text');

svgNode.appendChild(textNode);

我希望有一个事件来代替可用的信息,例如:

textNode.addEventListener("onrender", onNodeTextEvent); // Yeah, this event does not appear to exist. Got it.

1 个答案:

答案 0 :(得分:0)

由于我不认为这个问题是以这种方式提出的,所以我认为我会以这种方式提出这个问题。事实证明(至少在Firefox上)在将元素添加到'svg'元素(已经是文档树的一部分)之后,边界框是有效的。

svgNode.appendChild(textNode);
var bbox = textNode.getBBox();
// ... Work with bbox

来自:https://stackoverflow.com/a/27626991/6154987

的答案