You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Fabric.js v5:获取UI创建组内元素修改后画布属性的方法

Fabric.js v5 多选组修改后获取元素属性问题

我正在使用Fabric.js v5版本,从官方文档里了解了创建组的方法,但没找到通过UI创建多选组的相关指引。我的场景是用户按住shift/cmd键点击画布元素来创建多选组(会生成一个外部框),之后可以对选中的所有元素进行整体移动、缩放操作。

多选组示例

以下是我尝试的代码:

const canvas = new fabric.Canvas("myId"); 

canvas.on("object:modified", hasBeenModified);

function hasBeenModified(evt) {
    var az = evt.target.canvas.targets; // 空数组,我认为它应该显示组内所有元素
}

如果用evt.target._objects能看到所有元素,但元素的left位置是负值(我明明把元素向右移动了,数值应该增大才对)。

移动单个对象时,下面的方法能正常工作:

console.log("original width: " + evt.target.get('width'));

GitHub Issues里有人建议用targets,但它始终是空数组。

我想要从Fabric.js中拿到一个数组,遍历每个被修改的元素,获取它们的最新属性,并且拿到元素在画布中的绝对位置(不是组内的相对位置)。

请问,在用户通过键盘/鼠标创建多选组并进行缩放、拖拽修改后,怎么获取每个元素的新尺寸、位置(或其他属性)?


内容的提问来源于stack exchange,提问作者MyDaftQuestions

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 12:27:13