I found an answer (일부 수정 한 Snap.svg) 그러나 완벽하게 작동합니다. (나는 그것을 다른 장소도를 사용하기 때문에, 수도뿐만 아니라) 내가 jQuery를 함께 find("tspan")
을하고있는 중이 야으로
function text(x, y, txt, max_width, element_class) {
var abc = "abcdefghijklmnopqrstuvwxyzæøåABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ";
var temp = rsr.text(50, 50, abc);
temp.node.classList.add("text");
var letter_width = temp.getBBox().width/abc.length;
temp.remove();
var heights = [];
var loopLines = txt.split("\n");
for (j = 0; j < loopLines.length; j++) {
var words = loopLines[j].split(" ");
var width_so_far = 0,
current_line = 0,
lines = [''];
for (var i = 0; i < words.length; i++) {
var l = words[i].length;
if (width_so_far + (l * letter_width) > max_width) {
lines.push('');
current_line++;
width_so_far = 0;
}
width_so_far += l * letter_width;
lines[current_line] += words[i] + " ";
}
if (j > 0) {
y += heights[j - 1];
}
lines = lines.join("\n");
var t = rsr.text(x, y, lines);
$(t.node).find("tspan").attr("dy", "1.2em");
t.node.classList.add(element_class);
heights.push(t.getBBox().height);
}
}
는 jQuery를 필요합니다.
문자열에 \n
을 지원하도록 수정했습니다.
나는 내 질문에 답하지 않기 때문에 답변으로 수락하거나 upvote 수 없습니다. 내가 구현 한 [Snap.svg] (http://snapsvg.io/)에 대한 해결 방법을 발견했으며 지금 테스트 중입니다. 나는 대답을 게시 할 것이다. – MortenMoulder
이제 다른 전체 라이브러리에 복제본으로 표시합니다. 잘 했어, 폴. 글자 그대로 butthurt. – MortenMoulder
좋아요. 됐어. 행복? 나는 답이 거의 같았 기 때문에 그것을 dup이라고 표시했고 나는 다른 사람이 그 신용을받을 가치가 있다고 믿는다. 나는 또한 당신의 대답이 당신이 말한 것과 똑같이한다는 사실에도 불구하고 나를 약화 시켰다고 지적합니다. –