fabric.js 多选中后取消多选框的控制点
时间: 2023-09-11 12:05:49 浏览: 28
可以通过在 `object:selected` 事件中设置 `hasControls` 和 `hasBorders` 属性为 `false` 来实现取消多选框的控制点和边框。以下是一个示例代码:
```js
canvas.on('selection:created', function(e) {
// 判断是否选中了多个对象
if (canvas.getActiveObjects().length > 1) {
// 取消多选对象的控制点和边框
canvas.getActiveObjects().forEach(function(obj) {
obj.set({
hasControls: false,
hasBorders: false
});
});
}
});
canvas.on('selection:cleared', function(e) {
// 清空选中对象并重置控制点和边框
canvas.getObjects().forEach(function(obj) {
obj.set({
hasControls: true,
hasBorders: true
});
});
canvas.renderAll();
});
```
这段代码在 canvas 的 `selection:created` 事件中,判断是否选中了多个对象,如果是,则遍历每个对象并设置其 `hasControls` 和 `hasBorders` 属性为 `false`,即取消多选框的控制点和边框。在 `selection:cleared` 事件中,清空选中对象并重置控制点和边框。