Fabric.js 无法使文本与 textAlign 对齐

Ale*_*ova 5 javascript fabricjs

我无法让textAlign 在fabric.js 中工作 fontSize、fontBackground 可以正常工作,但textAlign 不能正常工作。我错过了什么吗?

var canvas = new fabric.Canvas('myCanvas');

$('button.addText').click(function() {
  var text = new fabric.Text($(this).siblings().val(), {
    textAlign: 'center',
    fontSize: 40
  });
  canvas.add(text);
});
Run Code Online (Sandbox Code Playgroud)

Dur*_*rga 5

var canvas = new fabric.Canvas('myCanvas');
var align = ["left", "center", "right" , "justify"];
var el = document.getElementById('res');
var txt = 'FabricJS \n is \nAwsome';

var text = new fabric.Text(txt, {
    textAlign: 'left', //"left", "center", "right" or "justify".
    width:450,
    fontSize: 40
  });
canvas.add(text);
changeAlign();

function changeAlign(){
 var val = align[Math.floor(Math.random() * align.length)];
 text.set('textAlign',val);
 el.innerHTML = 'Text Alignment : ' +val;
 canvas.setActiveObject(text);
 canvas.renderAll();
}
Run Code Online (Sandbox Code Playgroud)
canvas {
 border : 2px dotted blue;
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.7.17/fabric.min.js"></script>
<canvas id="myCanvas" width="600" height="300"></canvas><br>
<button onclick='changeAlign()'>Change align</button><p id='res'></p>
Run Code Online (Sandbox Code Playgroud)

@AndreaBogazzi 他是对的。在文本中,框取决于第一行的宽度,如果您愿意,那么它将适用于多行文本。检查片段。