gpt4 book ai didi

fabricjs - Fabric.js Canvas 边界检测

转载 作者:行者123 更新时间:2023-12-05 03:15:06 25 4
gpt4 key购买 nike

我是 Fabric.js 的新手。

我想在 Canvas 内显示一个可移动/可调整大小的矩形,但要限制用户操作,使其不能在 Canvas 外移动/放大。

是否有一种简单的方法来设置这些约束?我需要手动检测 Canvas 边界吗?

最佳答案

对象缩放或拖动后,它会找到位置。如果位置超出边界,它将把对象恢复到之前的状态。

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

关于fabricjs - Fabric.js Canvas 边界检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20643501/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com