如何在Fabric.js中以编程方式清除当前选中状态?
在Fabric.js中编程取消对象选中状态的方法
要清除Fabric.js画布中当前选中的对象(包括组),核心是调用画布实例的discardActiveObject()方法,再配合renderAll()更新画布视觉效果。
针对你描述的场景——用户选中组后触发selected事件,此时取消该组的选中状态,直接在事件处理器里执行以下操作即可:
// 假设你的Fabric.js画布实例变量为canvas canvas.on('selected', function(e) { // 清除当前选中状态 canvas.discardActiveObject(); // 刷新画布,让选中框消失 canvas.renderAll(); });
补充说明
discardActiveObject()会将画布的activeObject(单个选中对象)和activeGroup(选中的组)都置为null,彻底清除选中状态。- 必须调用
renderAll(),否则画布上的选中高亮框不会立即消失,视觉上不会同步更新。 - 如果需要仅针对特定对象取消选中,可以先判断目标对象:
canvas.on('selected', function(e) { // 仅当选中的是组时取消选中 if (e.target?.type === 'group') { canvas.discardActiveObject(); canvas.renderAll(); } });
内容的提问来源于stack exchange,提问作者Witek
相关产品推荐
相关产品推荐

