在fabricjs文本框中,如果文本内容(没有空格)大于文本框宽度,它将不会转到下一行,它会卡在第一行。因此,我使用text:changed
事件获取内容宽度,并尝试以编程方式按enter
,如果内容大于文本框宽度但不起作用。还有其他方法吗?
我不想覆盖fabricjs默认方法的断字,它有其他冲突和光标错位。
var canvas = new fabric.Canvas('c');
var text1 = new fabric.Textbox('Text', {
left: 10,
top: 20,
width: 300
})
canvas.add(text1);
canvas.on('text:changed', function(e) {
if (e.target.width > 300) {
console.log("text over width");
$('#canvas').trigger(jQuery.Event('keypress', {
keyCode: 87,
which: 13
}));
}
});
canvas{
border:1px solid #000;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>
<script src="https://rawgit.com/kangax/fabric.js/master/dist/fabric.js"></script>
<canvas id="c" width="400" height="400" style="border:1px solid #000000;"></canvas>