SVG:计算边界框而不显示对象

时间:2011-08-12 10:53:27

标签: svg

在渲染任何内容之前,我需要一个文本边界框来调整我的布局。通过一些实验,我发现在'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

1 个答案:

答案 0 :(得分:1)

我认为最简单的选择是将可见性设置为隐藏:

obj.setAttributeNS(null, "visibility", "hidden");