2014-01-17 1 views
4

Я использую отличный Fabric.js, чтобы нарисовать текст на холсте. Когда я укажу произвольный размер (скажем, прямоугольник 200x200) для моего объекта IText, кажется, что Farbric.js заставляет ширину и высоту объекта располагаться вокруг текста.Fabric.js: Как установить нестандартный размер текста или IText?

var t = new fabric.IText("Hello world !", { 
    top: 100, 
    left: 100, 
    width: 200, 
    height:200, 
    backgroundColor: '#FFFFFF', 
    fill: '#000000', 
    fontSize: 12, 
    lockScalingX: true, 
    lockScalingY: true, 
    hasRotatingPoint: false, 
    transparentCorners: false, 
    cornerSize: 7 
}); 

Вот Fiddle с моей проблемой: "Hello World!" http://jsfiddle.net/K52jG/4/

В этом примере я хочу текст должен быть в коробке 200x200. Можно ли это сделать и как?

+0

't.setFontSize (36)' – kangax

+0

Thks @kangax, но это не совсем то, что я имею в виду. Я хочу сохранить размер шрифта до 12, в коробке IText 200x200. – Derek

+0

текстовое поле зависит от размера шрифта; вы не можете изменить их независимо друг от друга в данный момент – kangax

ответ

3

ОК, так, потому что это не возможно, лучший способ я нашел это гнездо коробки IText в объекте Rectangle, используя группу

var r = new fabric.Rect({ 
    width: 200, 
    height: 200, 
    fill: '#FFFFFF', 
    }); 


// create a rectangle object 
var t = new fabric.IText("Hello world !", { 
    backgroundColor: '#FFFFFF', 
    fill: '#000000', 
    fontSize: 12, 
    top : 3, 


}); 


var group = new fabric.Group([ r, t ], { 
    left: 100, 
    top: 100, 
    lockScalingX: true, 
    lockScalingY: true, 
    hasRotatingPoint: false, 
    transparentCorners: false, 
    cornerSize: 7 


}); 

Пример в этом Fiddle: http://jsfiddle.net/4HE3U/1/

Примечание. Мне нужно установить «верхнее» значение для текста, потому что оно выходит из строя. Значение выглядит следующим образом: fontSize/4

+2

, но с этим решение, текст не может быть отредактирован. CMIIW – Praditha

Смежные вопросы