第一行中

时间:2018-02-02 11:41:45

标签: fabricjs

在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>

0 个答案:

没有答案