2016-01-20 10 views
17

Sto usando questo codice per aggiungere textbox in canvas utilizzando fabric js,js tessuto non FontWeight lavoro

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

che aggiungono successo textbox in canvas. Ora, se provo a renderla bold utilizzare questo comando

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

di lavoro, ma quando cercare di cambiarlo alla normalità,

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

non funziona.

Non so dove sia il problema. Sto facendo qualcosa di sbagliato qui?

Si comporta in modo strano Puoi vederlo here.

visita prima here quindi visitare here

risposta

7

Ho appena preso fabric.js da here e sostituito con il mio, e tutto il lavoro.

2

Il seguente codice funziona per me. Vedo due punti dove potevo fallito al vostro fianco:

canvas.renderAll(); 

bisogno di essere rerendered correttamente. E anche:

canvas.setActiveObject(textSample); 

era necessario per me. Perché altrimenti:

canvas.getActiveObject(); 

non è stato definito. Ora un esempio di codice di lavoro completo:

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

Speranza che aiuta.

+0

ho già eseguito il rendering nel mio codice. ma si sta comportando in modo strano. vedi http://screencast.com/t/HDVH6ckkr – hemsbhardiya

+0

ho appena modificato la mia domanda, per favore riferiscilo di nuovo.possiamo avere qualcosa di sbagliato lì che non sono riuscito a trovare. Grazie – hemsbhardiya