【问题标题】:FabricJS iText grow from centerFabricJS iText 从中心增长
【发布时间】:2017-04-30 00:13:00
【问题描述】:

如何使 FabricJS 画布上的文本对象从中心增大/缩小,并在添加或删除文本时双向扩展?

我已尝试添加 centeredScaling: true,但这仅用于调整对象的大小(缩放),而不是添加/删除文本。

如果您查看我的演示,您会发现当您单击文本并向对象添加更多字符时,它只会向右扩展,使文本偏离中心。

var canvas = this.__canvas = new fabric.Canvas('c');
var cWidth = 600;
var cHeight = 200;

canvas.setWidth(cWidth);
canvas.setHeight(cHeight);


function Addtext() {
  canvas.add(new fabric.IText('Text', {
    left: (cWidth / 2) - 83,
    top: (cHeight / 2) - 25,
    fontFamily: 'arial black',
    fill: '#333',
    fontSize: 50,
    centeredScaling: true,
  }));
}
 #c {
   border: 1px solid red;
   top: 22px;
   left: 0px;
 }
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.5.0/fabric.min.js"></script>

<button onclick="Addtext()">Add Text</button>

<canvas id="c"></canvas>

【问题讨论】:

    标签: javascript jquery canvas fabricjs


    【解决方案1】:

    align 以及x 和y 的原点添加到center

    var canvas = this.__canvas = new fabric.Canvas('c');
    var cWidth = 600;
    var cHeight = 200;
    
    canvas.setWidth(cWidth);
    canvas.setHeight(cHeight);
    
    
    function Addtext() {
      canvas.add(new fabric.IText('Text', {
        left: (cWidth / 2) - 83,
        top: (cHeight / 2) - 25,
        fontFamily: 'arial black',
        fill: '#333',
        fontSize: 50,
        align: 'mid', //added
      originX: 'center', //added
      originY: 'center', //added
        centeredScaling: true,
      }));
    }
     #c {
       border: 1px solid red;
       top: 22px;
       left: 0px;
     }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.5.0/fabric.min.js"></script>
    
    <button onclick="Addtext()">Add Text</button>
    
    <canvas id="c"></canvas>

    【讨论】:

    • 我没有在 iText 文档中找到这个,也许我没有找对地方:)
    猜你喜欢
    • 1970-01-01
    • 2016-03-07
    • 2014-10-28
    • 2017-10-23
    • 2018-10-17
    • 2017-07-26
    • 1970-01-01
    • 2017-01-10
    • 2021-10-22
    相关资源
    最近更新 更多