snap que generate create jquery svg jquery-svg

jquery - que - Cómo colocar texto en el centro de una ruta svg



svg html5 generator (2)

Para renderizar SVG estoy usando el plugin jQuery SVG. Y, ahora quiero agregar texto a cada ruta y polígono. En jsFiddle puede ver el marcado generado por el complemento.

Para crear texto escribí el siguiente código:

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''));

En el código en jsFiddle , puede ver que la etiqueta de textpath existe, pero no está visible. ¿Cómo agregar texto al centro de cada ruta?
Gracias.


Para colocar texto en línea recta en la parte superior de una forma, en el medio del cuadro delimitador, vea:

http://jsfiddle.net/dYuAA/114/

Simplemente agrega algunos javascript para colocar texto.

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]) }

Lo anterior solo mira los elementos de ruta, pero puede ajustar el selector para incluir lo que necesite.


Hay un par de problemas aquí.

a) SVG distingue entre mayúsculas y minúsculas, por lo que es textPath y no textpath.

b) textPath debe estar encerrado en un elemento <text> para ser válido

Aquí está tu jsFiddle arreglado .