fabric js fontweight不工作

时间:2016-01-20 13:55:23

标签: javascript fabricjs

我使用此代码使用textboxcanvas中添加fabric js

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

2 个答案:

答案 0 :(得分:7)

我只是从herefabric.js并替换为我的,并且全部工作。

答案 1 :(得分:2)

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

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();

希望有所帮助。