Html5 canvas 删除应用于IText的样式
我在画布中添加了一个IText对象,在这里我动态更改文本中每个单词的样式,这里的样式正在更新,但我无法清除应用的以前的样式。因此,每次新样式都会覆盖到以前的样式上Html5 canvas 删除应用于IText的样式,html5-canvas,fabricjs,Html5 Canvas,Fabricjs,我在画布中添加了一个IText对象,在这里我动态更改文本中每个单词的样式,这里的样式正在更新,但我无法清除应用的以前的样式。因此,每次新样式都会覆盖到以前的样式上 function updateStyle(){ clearItextStyle(); var letterArray =getLetterIndex(iText.getText()); var counter=1;
function updateStyle(){
clearItextStyle();
var letterArray =getLetterIndex(iText.getText());
var counter=1;
for(var i=0;i<selectionArr.length;i=i+2){
iText.setSelectionStart(selectionArr[i]);
iText.setSelectionEnd(selectionArr[i+1]+1);
switch(counter){
case 1:
iText.setSelectionStyles({"textDecoration":"underline"});
break;
case 2:
iText.setSelectionStyles({"textDecoration":"overline"});
break;
case 3:
iText.setSelectionStyles({"textDecoration":"line-through"});
break;
}
counter++;
if(counter>3){
counter=0;
}
}
canvas.renderAll();
}
function clearItextStyle(){
text.setSelectionStart(0);
text.setSelectionEnd(iText.getText().length-1);
text.setSelectionStyles(null);
canvas.renderAll();
}
函数更新样式(){
clearItextStyle();
var letterArray=getLetterIndex(iText.getText());
var计数器=1;
对于(var i=0;i3){
计数器=0;
}
}
canvas.renderAll();
}
函数clearItextStyle(){
text.setSelectionStart(0);
text.setSelectionEnd(iText.getText().length-1);
text.setSelectionStyles(空);
canvas.renderAll();
}
要清除IText元素的“TextEdition”样式,可以将该样式设置为“none”,例如
重置itext对象的样式:
itext.styles = { }; // -> space is important
canvas.renderAll();
然后可以添加回样式。使用text.remove();清除文本
text.setSelectionStyles({"textDecoration":"none"});
itext.styles = { }; // -> space is important
canvas.renderAll();