如何確定 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 += "
" + words[i];    } else {       tempText += " " + words[i];    } } b.attr("text", tempText.substring(1));

更新於: 2020 年 1 月 27 日

182 次瀏覽

開啟你的職業生涯

完成課程,獲得認證

開始吧
廣告