Jesper TMedlem sedan nov. 20017 144 inläggFrågan#1 Denna funkar bra
var txt = $("h2").html();
var svgText = createSVGtext(txt, 500, 100);
$("h2").replaceWith( '<svg id="txt" width="100%" height="100%" viewBox="0 0 1000 200"></svg>');
$('#txt').append(svgText);
Men så fort jag gör en loop av det hela verkar det inte funka.
$('h2').each(function() {
var $this = $(this);
var txt = $this.text();
var svgText = createSVGtext(txt, 500, 50);
$($this).replaceWith('<svg width="100%" height="100%" viewBox="0 0 1000 200">' + svgText.innerHTML + '</svg>');
});
Har jag missat något?
ser ut att det borde fungera, det du kan göra är att ta bort $() runt $this för det är ju redan ett jQuery objekt.
$('h2').each(function() {
var $this = $(this);
var txt = $this.text();
//var svgText = createSVGtext(txt, 500, 50);
$this.replaceWith('<b>' + txt + '</b>');
});
fungera med som exempelvis, men jag gissar på att svgText är en SVG objekt och inte text.
vad gör createSVGtext?
fungera:
$('h2').each(function() {
var $this = $(this);
var txt = $this.text();
var svgText = createSVGtext(txt, 500, 50);
var svg = $('<svg width="100%" height="100%" viewBox="0 0 1000 200"/>').append(svgText);
$this.replaceWith(svg);
});
bättre?
Jesper TMedlem sedan nov. 20017 144 inläggYes!
funktionen createSVGtext splittar upp SVG-text i flera tspan-element. Då SVG 1.1-text inte fattar textstycken.
1000 tack!