2016-03-28 2 views
0

Итак, я сделал вывод, что я могу добавить SVG графики на холсте с помощью:Как удалить SVG из холста Fabric.js?

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 может быть, это работал для вас.

Смежные вопросы