javascript - 在 html5 中的 fabric.js Canvas 上一次删除多个对象

标签 javascript html canvas fabricjs

我实际上正在开发一个 html5 Canvas 项目,该项目使用 fabric.js 框架进行 Canvas 交互。现在我正在努力删除多个对象。下面的代码似乎并没有跟踪选中的对象,而是跟踪 Canvas 上的所有对象。

var deleteSelectedObject = document.getElementById('delete-item');
deleteSelectedObject.onclick = function(){
    var curSelectedObjects = new Array();
    curSelectedObjects = canvas.getObjects(canvas.getActiveGroup);
    canvas.discardActiveGroup();
    for (var i = 0; i < curSelectedObjects.length; i++){
        canvas.setActiveObject(curSelectedObjects[i]);
        canvas.remove(canvas.getActiveObject());
    }
};

不要理解我的失败。

最佳答案

由于解决了大部分问题的@Kangax 评论,我找到了以下解决方案来从 Canvas 中删除当前选定的对象。

var deleteSelectedObject = document.getElementById('delete-item');
deleteSelectedObject.onclick = function()
{
if(canvas.getActiveGroup()){
      canvas.getActiveGroup().forEachObject(function(o){ canvas.remove(o) });
      canvas.discardActiveGroup().renderAll();
    } else {
      canvas.remove(canvas.getActiveObject());
    }
};

该函数检查是否选择了一个组。如果选择了一个组,则该组的每个对象都会被删除。 如果未选择任何组,则该函数会尝试删除选定的对象。如果未选择任何内容,则不会更改 Canvas 。

关于javascript - 在 html5 中的 fabric.js Canvas 上一次删除多个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11829786/

相关文章:

javascript - Selectize.js 事件 - 不会工作

javascript - 无法添加到已初始化的数组中

javascript - 根据表的第一行和表的第一列中的类向表的行和类添加类

javascript - 使用 jquery/javascript 从 div 中加载的外部网页获取 url

javascript - 如何在 KineticJS Wedge 中垂直居中文本?

c# - 保持 Canvas 元素相对于背景图像定位

javascript - map 上未绘制标记

javascript - 获取 JavaScript 数组中的下一个和上一个元素

javascript - jQuery 和行高

javascript - Canvas requestAnimationFrame暂停