Я пытаюсь обернуть текст, создав текстовую строку и используя getComputedTextLength
, чтобы узнать, когда текст выходит за рамки допустимая ширина. Однако я не могу найти простого способа постепенного наращивания текста, который будет работать с getComputedTextLength
.
Общая идея такова:
str = svgDocument.createTextNode(myText[word]); // first word on new line
word++;
obj = text.cloneNode(true); // new text element for this line
obj.appendChild(str);
svgDocument.documentElement.appendChild(obj); // reqd for getComputedTextLength?
for( ; word < myText.length; word++) {
next_width = obj.getComputedTextLength(); // get current line width
if(next_width >= extent)
break;
str += " "; // add next word to the line
str += myText[word];
...
}
Кто-нибудь может сказать мне, как заставить это работать? Предположительно str
скопирован, а не указан в obj
, но я также попытался поместить obj.removeChild (str)
и obj.appendChild (str )
в цикле, но appendChild
дает сбой. Я также пробовал различные комбинации перемещения по documentElement.appendChild
, удаления obj
и повторного добавления его и т. Д.