use*_*827 7 jquery svg jquery-svg
为了渲染SVG我正在使用jQuery SVG插件.而且,现在我想为每个路径和多边形添加文本.在jsFiddle上,您可以看到插件生成的标记.
为了创建文本,我编写了以下代码:
var svgg = $("#rsr").svg('get');
var texts = svgg.createText();
svgg.textpath($("#Layer_x0020_1"),id, texts.string('We go ').
span('up', { dy: -30, fill: 'red' }).span(',', { dy: 30 }).
string(' then we go down, then up again'));
Run Code Online (Sandbox Code Playgroud)
在jsFiddle的代码中,您可以看到textpath标记存在,但它不可见.如何将文本添加到每个路径的中心?
谢谢.
Eri*_*röm 14
要在文本顶部以直线放置文本,请在边界框的中间显示:
http://jsfiddle.net/dYuAA/114/
它只是添加了一些javascript来放置文本.
function addText(p)
{
var t = document.createElementNS("http://www.w3.org/2000/svg", "text");
var b = p.getBBox();
t.setAttribute("transform", "translate(" + (b.x + b.width/2) + " " + (b.y + b.height/2) + ")");
t.textContent = "a";
t.setAttribute("fill", "red");
t.setAttribute("font-size", "14");
p.parentNode.insertBefore(t, p.nextSibling);
}
var paths = document.querySelectorAll("path");
for (var p in paths)
{
addText(paths[p])
}
Run Code Online (Sandbox Code Playgroud)
以上仅查看路径元素,但您可以调整选择器以包含您需要的任何内容.
| 归档时间: |
|
| 查看次数: |
15420 次 |
| 最近记录: |