2016-03-28 168 views
0

所以我推断,我可以通过添加SVG图形到画布:如何从Fabric.js画布中删除SVG?

fabric.loadSVGFromURL('img1.svg', function(objects, options) { 
    var obj1 = fabric.util.groupSVGElements(objects, options); 
    canvas.add(obj1); 
}); 

fabric.loadSVGFromURL('img2.svg', function(objects, options) { 
    var obj2 = fabric.util.groupSVGElements(objects, options); 
    canvas.add(obj2); 
}); 

假设我现在要删除一个或两个。我怎样才能做到这一点?

回答

0

fabricjs我使用不同的方法删除画布中的对象。此方法删除画布中的任何对象。 fabricjs允许设置name每个对象,所以我们可以使用这个属性来删除object.like这(使用jQuery这个:)

var canvas = new fabric.Canvas('c'); 
fabric.loadSVGFromURL('test.svg', function(objects, options) { 
    var obj2 = fabric.util.groupSVGElements(objects, options); 
    obj2.name ="test_svg" //<<<<<<< here set name 
    canvas.add(obj2); 
    console.log(canvas.getObjects()) 
}); 

function del(){ 
$.each(canvas._objects, function(index, obj) { 
    if(obj == null) return; 
    $.each(obj, function(attr, value) { 
      //console.log(attr + ' == ' + value); 
      if(value == "test_svg"){ //<<<<< here we call name 
        //alert(index); 
        canvas.remove(canvas._objects[index]); // here we delete that object 
        canvas.renderAll(); 
       } 
      }); 
}); 
} 

我从负载SVG方法测试这和它的worked.so也许这是为你工作..