我是Fabric.js.的新手
我想在画布内显示一个可移动/可调整大小的矩形,但限制用户操作,使其不能在画布外移动/放大。
有没有一种简单的方法来设置这些约束?我需要手动检测画布边界吗?
缩放或拖动对象后,它会找到位置。如果位置超出边界,则会将对象恢复到以前的状态。
canvas.on('object:modified', function (e) {
var obj = e.target;
var rect = obj.getBoundingRect();
if (rect.left < 0
|| rect.top < 0
|| rect.left + rect.width > canvas.getWidth()
|| rect.top + rect.height > canvas.getHeight()) {
if (obj.getAngle() != obj.originalState.angle) {
obj.setAngle(obj.originalState.angle);
}
else {
obj.setTop(obj.originalState.top);
obj.setLeft(obj.originalState.left);
obj.setScaleX(obj.originalState.scaleX);
obj.setScaleY(obj.originalState.scaleY);
}
obj.setCoords();
}
});
例如:http://sett.ociweb.com/sett/settJun2014.html