我使用fabric.js来定义可以调整大小的矩形区域。我想知道是否有任何方法来设置结构,以便通过更改宽度/高度属性而不是scaleX和scaleY来调整元素的大小?
答案 0 :(得分:5)
您可以使用object:scaling
事件。
canvas.on("object:scaling", function(e) {
var target = e.target;
if (!target || target.type !== 'rect') {
return;
}
var sX = target.scaleX;
var sY = target.scaleY;
target.width *= sX;
target.height *= sY;
target.scaleX = 1;
target.scaleY = 1;
});
答案 1 :(得分:0)
您应该设置脏标志,该标志为我解决了大多数问题:
canvas.on("object:scaling", function (e) {
var target = e.target;
if (!target || target.type !== 'rect') {
return;
}
var sX = target.scaleX;
var sY = target.scaleY;
target.width *= sX;
target.height *= sY;
target.scaleX = 1;
target.scaleY = 1;
target.dirty = true;
});