fabric js 字体粗细不工作

fabric js fontweight not working

我正在使用此代码使用 fabric js

canvas 中添加 textbox
var text = 'Type Text Here';
var textSample = new fabric.Textbox(text, {
    left: getCardLeft() + 100,
    top: getCardTop() + 10,
    width: 200,
    height: 20,
    fontFamily: 'Helvetica',
    fill: getColorPickerForegroundColor(),
    fontWeight: '',
    fontSize: parseInt('25'),
    originX: 'center',
    hasRotatingPoint: true,
    centerTransform: true,
});
canvas.add(textSample);

成功将 textbox 添加到 canvas。 现在,如果我尝试使用此命令 bold

canvas.getActiveObject().set("fontWeight", "bold");
canvas.renderAll();

工作正常,但是当尝试将其更改为正常时,

canvas.getActiveObject().set("fontWeight", "");
canvas.getActiveObject().set("fontWeight", "100");
canvas.getActiveObject().set("fontWeight", "normal");
canvas.renderAll();

不工作。

我不知道问题出在哪里。我在这里做错了什么吗?

它的行为很奇怪 可以看到here.

先访问here 然后访问here

以下代码适用于我。我看到有两点我可能会在你这边失败:

canvas.renderAll();

需要正确重新渲染。还有:

canvas.setActiveObject(textSample);

对我来说是必要的。因为否则:

canvas.getActiveObject();

未定义。 现在是一个完整的工作代码示例:

var canvas = new fabric.Canvas('c', { selection: false });
var text = 'Type Text Here';

var textSample = new fabric.Textbox(text, {
  left: 300,
  top: 50,
  width: 200,
  height: 20,
  fontFamily: 'Helvetica',
  fill: "#fac",
  fontWeight: '100',
  fontSize: parseInt('25'),
  originX: 'center',
  hasRotatingPoint: true,
  centerTransform: true,
});

canvas.add(textSample);
canvas.setActiveObject(textSample);
canvas.getActiveObject().set("fontWeight", "bold");
canvas.renderAll();
canvas.getActiveObject().set("fontWeight", "100");
canvas.renderAll();

希望对您有所帮助。

我只是从 here 中取出 fabric.js 并替换为我的,并且全部工作。