【发布时间】:2014-02-15 02:33:33
【问题描述】:
我正在尝试限制 Fabric.js 中的最大对象调整大小。我正在使用 observe("object:scaling") 和这段代码:
canvasLI.observe("object:scaling", function(e) {
var shape = e.target;
var scaleX = shape.scaleX;
var scaleY = shape.scaleY;
var posX = shape.left;
var posY = shape.top;
if(!isNaN(scaleX) && scaleX > 2)
{
shape.set({
scaleX: 2,
});
}
if(!isNaN(scaleY) && scaleY > 2)
{
shape.set({
scaleY: 2,
});
}
shape.set({
left: posX,
top: posY,
});
console.log("X:" + ( shape.scaleX) + " Y:" + (shape.scaleY));
});
它工作正常,并且限制了最大尺寸,但是当一个对象有比例限制时并尝试再次调整大小,它会跟随鼠标光标移动顶部和左下角控件(不在右下角控件中)。
另外,我尝试在对象中捕获 left 和 top 值以将其移动到这些值,但不起作用。
谢谢。
PS:也试过改shape.width和shape.height而不是scaleX和scaleY,问题是一样的。
编辑:
我可以停止缩放对象的移动,将lockScalingX:true and lockScalingY:true 添加到最大缩放的代码中,但现在我遇到了另一个问题。当我缩小时,如何禁用此 lockScaling 将此值设置为 false?如何获得 scale DOWN 事件?
【问题讨论】:
-
我可以停止缩放对象的移动,将
lockScalingX:true and lockScalingY:true添加到最大缩放的代码中,但现在我遇到了另一个问题。当我缩小时,如何禁用此 lockScaling 将此值设置为 false?我怎样才能得到 scale DOWN 的事件?
标签: html5-canvas fabricjs