【发布时间】:2012-05-02 12:51:32
【问题描述】:
我目前正在使用 SVG。我需要知道以像素为单位的字符串长度才能进行一些对齐。如何获取以像素为单位的字符串长度?
更新:感谢 nrabinowitz。根据他的帮助,我现在可以获得动态添加文本的长度。这是一个例子:
<svg id="main"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="1.1"
width="1020"
height="620"
viewBox="0 0 1020 620"
onload="startup(evt)">
<script>
<![CDATA[
var startup = function (evt) {
var width;
var svgNS = "http://www.w3.org/2000/svg";
var txtNode = document.createTextNode("Hello");
text = document.createElementNS(svgNS,"text");
text.setAttributeNS(null,"x",100);
text.setAttributeNS(null,"y",100);
text.setAttributeNS(null,"fill","black");
text.appendChild(txtNode);
width = text.getComputedTextLength();
alert(" Width before appendChild: "+ width);
document.getElementById("main").appendChild(text);
width = text.getComputedTextLength();
alert(" Width after appendChild: "+ width)
document.getElementById("main").removeChild(text);
}
//]]>
</script>
</svg>
【问题讨论】:
-
你用什么语言工作?
-
我的意思是可缩放矢量图形。
-
很明显,但是您正在处理某种语言的 svg,不是吗?
-
如果没有,我会说只需使用 svg 编辑程序打开 svg 并测量那里的大小就可以了。最重要的是,我想说,在这种情况下,这个问题并不真正属于这里。
-
是的,我使用 Javascript。我试过这个,它起作用了,但是当我尝试将它嵌入到
标签: javascript image svg