作者:729453686_5be5b9 | 来源:互联网 | 2023-09-01 08:02
我使用优秀的Fabric.js在画布中绘制一些文本.当我为我的IText对象指定自定义大小(比如说200×200矩形)时,似乎Farbric.js强制对象的宽度和高度适合文本.
我使用优秀的Fabric.js在画布中绘制一些文本.当我为我的IText对象指定自定义大小(比如说200×200矩形)时,似乎Farbric.js强制对象的宽度和高度适合文本.
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
});
这是我的问题的小提琴:http://jsfiddle.net/K52jG/4/
在这个例子中,我想要“Hello World!”文本在200×200框中.有可能做到这一点,以及如何做到这一点?
解决方法:
好的,因为它是不可能的,我发现的最好方法是使用Group将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
});
这个小提琴的例子:http://jsfiddle.net/4HE3U/1/
注意:我必须为文本设置“顶部”值,因为它开箱即用.值似乎是:fontSize / 4