Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

SVG 텍스트 상자 너비를 결정하거나 'x' 문자 뒤에 줄 바꿈을 강제 실행하는 방법은 무엇입니까?

<시간/>

getBBox() 함수를 사용하고 텍스트 객체에 한 번에 한 단어를 추가합니다. 너무 넓어지면 줄 바꿈을 추가해야 합니다.

var a = Raphael(500, 500);
var b = a.text(100, 100).attr('text-anchor', 'start');
var maxWidth = 100;
var content = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis nec semper mauris. Sed gravida augue feugiat nulla ultrices efficitur. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Sed sit amet lobortis eros, et lobortis diam. Aenean arcu velit, condimentum eu lacus in, dignissim bibendum odio. Mauris ultricies nunc et lorem bibendum dignissim. Ut porttitor purus vitae diam efficitur ultrices. Integer dignissim efficitur lorem, non vehicula diam scelerisque at ";
var w = content.split(" ");
var tempText = "";

for (var i = 0; i < w.length; i++) {
   b.attr("text", tempText + " " + words[i]);
   if (b.getBBox().width > maxWidth) {
      tempText += "\n" + words[i];
   } else {
      tempText += " " + words[i];
   }
}
b.attr("text", tempText.substring(1));