如何从Fabric.js画布中删除SVG?
问题描述:
所以我推断,我可以通过添加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);
});
假设我现在要删除一个或两个。我怎样才能做到这一点?
答
在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也许这是为你工作..