【问题标题】:fabric.js - How to set text width?fabric.js - 如何设置文本宽度?
【发布时间】:2015-10-04 09:18:18
【问题描述】:

我发现将 textAlign 设置为 fabric.js Text 对象是没有用的,因为文本字段的宽度会自动分配以完全适合文本的宽度。

我在 API 中找不到任何可以让我设置其他宽度的内容。我试过scaleToWidth,但也没有用。

this.text = new fabric.Text(this.name, 
{
        fontFamily: 'Calibri Light',
        fontSize: 17,
        backgroundColor: 'blue', // using this to confirm that the width is actually just set to the text width
        textAlign: 'center',
        top: 15,
        scaleToWidth: 1.1,
})

我使用一个非常老套的解决方案让它以所需的方式出现。

引自 fabric.js 网站:

文本对齐

文本对齐在处理多行文本时非常有用。 对于单行文本,边界框的宽度始终与该行的宽度完全匹配,因此无需对齐。 允许的值为“left”、“center”和“right”。

有谁知道如何解决这个问题?

【问题讨论】:

    标签: javascript jquery html fabricjs text-alignment


    【解决方案1】:

    不确定您是否在第一次询问后的两年内找到了答案,但我遇到了同样的问题,并且能够通过将文本对象添加到画布然后设置它的宽度然后触发 renderAll 来找到解决方案() 在画布上。

    var text = new fabric.Text('sample text', {fill: '#fff', textAlign: 'center'});
    canvas.add(text);
    text.width = 180;
    canvas.renderAll();
    

    【讨论】:

    • 您还必须在对文本的文本进行每次更改后设置 text.width = 180... text.set( text: "fred" );文本宽度 = 180; canvas.renderAll();
    • 6 年后,这是我发现的唯一解决方法。
    猜你喜欢
    • 2014-09-28
    • 2012-09-05
    • 2014-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    • 2017-06-12
    相关资源
    最近更新 更多