在渲染任何内容之前,我需要一个文本边界框来调整我的布局。通过一些实验,我发现在'getBBox'(或'getComputedTextLength')之前我必须实际渲染文本将返回非零值:
var group = svgDocument.createElementNS(svgns, "g");
for(i=0; i <= nYblocks; ++i) {
str = svgDocument.createTextNode(strings[i]);
obj = tnode.cloneNode(true);
obj.setAttributeNS(null, "y", y1);
obj.appendChild(str);
group.appendChild(obj);
y1 += yBlockPx;
}
svgDocument.documentElement.appendChild(group); // **REQUIRED**
bb = vgroup.getBBox();
问题:是否有一种很好的方式来渲染文本,使其实际上不显示?我应该只调整颜色或不透明度,还是我可以做些什么来渲染其他地方,也许是在另一棵树上?
谢谢 -
的Al
答案 0 :(得分:1)
我认为最简单的选择是将可见性设置为隐藏:
obj.setAttributeNS(null, "visibility", "hidden");