HTML5 SVG:计算动态创建的SVG内容的文本大小
HTML5 SVG: Calculating text size for dynamically created SVG content
我的代码目前向预先存在的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.
由于我认为这个问题没有以这种方式被问到,我想我将以这种方式呈现它。事实证明(至少在Firefox上),在元素被添加到"svg"元素(它已经是文档树的一部分)之后,边界框是有效的。
svgNode.appendChild(textNode);
var bbox = textNode.getBBox();
// ... Work with bbox
答案来源:https://stackoverflow.com/a/27626991/6154987
相关文章:
- 通过键盘编写SVG文本
- 将指针事件限制为SVG文本填充
- 如何添加 SVG 文本标记 从 JavaScript 函数返回的值
- 如何在javascript中使用svg文本标签
- 在鼠标悬停d3js上更改SVG文本的文本
- 使用d3.js删除svg文本元素
- 用javascript获取svg文本值
- svg文本居中异常
- 用逗号增加svg文本
- SVG文本锚点设置使文本元素移动
- Svg文本元素被另一个Svg元素重叠
- D3.js-围绕一个点旋转svg文本
- 如何查找 SVG 文本位置
- SVG 文本路径 - 动画开始偏移量(文本向下滑动 SVG 路径) - 在 JS 中
- 递增 SVG 文本区域中的 % 值
- 如何在javascript中换行svg文本
- 避免在拖动时跳转带有文本锚点的 SVG 文本
- D3JS SVG 文本和形状在同一行上
- 将省略号放在反应 svg 文本组件上
- 允许 SVG 文本在角度中可编辑