2016-01-20 104 views
17

我使用此代碼添加textbox面料JS fontWeight設置不工作

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

成功地添加到textboxcanvas。 現在,如果我嘗試使用此命令

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

工作,使其bold,但是當試圖將其更改爲正常,

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

不工作。

我不知道問題出在哪裏。我在這裏做錯了什麼?

它的表現很奇怪 你可以看到它here

訪問第一here 然後參觀here

回答

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

希望有所幫助。

+0

我已經做了我的代碼呈現。但它的表現很奇怪。看到http://screencast.com/t/HDVH6ckkr – hemsbhardiya

+0

我剛剛編輯我的問題很少,請再次參考它。可能是你得到任何錯誤,我無法找到。謝謝 – hemsbhardiya