0
據我所知,無法在TextJackBackgroundColor中添加填充(填充存在但它對textBackgroundColor沒有影響),所以我試圖破解文本的外觀給人的印象是填充。FabricJS在文本對象中添加新行
我這樣做是通過在文本對象內的每行末尾自動添加空格來實現的。這不是優雅,但它接近。
但是我被困在1個問題上,我的代碼變得有點混亂。
現在添加一個新行(點擊返回)不能按預期工作。
遊標似乎出現在它應該出現的角色後面,並且必須返回2次才能到達新行,屆時會添加空行。
出了什麼問題,我該如何回到正軌?
我認爲解決空行錯誤只有在行中包含1個或多個字符時才添加空格是有意義的,但我無法實現這一點。
這裏是我的Fiddle
JS
var canvas = new fabric.Canvas('mycanvas');
var activeObject = canvas.getActiveObject(str1);
var objects = canvas.getObjects();
var concatstr = '';
var res;
var str;
var str1;
var abcd;
canvas.on('text:changed', function() {
var concatstr = '';
var activeObject = canvas.getActiveObject();
var txtsa = jQuery.trim(activeObject.text);
values = txtsa.split('\n');
jQuery.each(values, function(index, val) {
jQuery.trim(val);
concatstr += " " + val + " " + "\\n";
});
var temp = concatstr.replace(/ +/g, ' ');
var final = temp.replace(/\\n/g, "\n");
activeObject.setText(final);
});
var text1 = new fabric.IText(' Text ', {
top: 100,
left: 100,
textBackgroundColor: '#000',
fontSize: 30,
lineHeight: 0.9,
fill: 'white',
fontWeight: 'bold',
textAlign: 'center',
fontFamily: 'Helvetica Nue, Helvetica, Sans-Serif, Arial, Trebuchet MS',
});
canvas.add(text1);
canvas.renderAll();
這是一條我嘗試過的路線 - 雖然不如您的優雅 - 但我期待的只是在文本字符後面(如我的小提琴)獲得背景顏色,類似於textBackgroundColor的工作方式,但是使用填充。該解決方案使用backgroundColor在整個文本對象後添加一個矩形。 – GoldenGonaz
Simialr to this https://s9.postimg.org/4vly2wopr/extext.jpg – GoldenGonaz