请看看我的的jsfiddle exampe,这是你所需要的。 的jsfiddle:http://jsfiddle.net/tornado1979/0fbefh52/1/
,这是代码,可以选择一个对象,然后按一下按钮来克隆:
HTML:
<button id="duplicate-item">clone object</button>
<canvas id="c" width="400" height="400"></canvas>
JS:
var canvas = new fabric.Canvas('c');
var circle = new fabric.Circle({
radius: 20,
fill: 'red',
left: 100,
top: 100
});
canvas.add(circle);
var square = new fabric.Rect({
left: 130,
top: 140,
fill: 'green',
width: 40,
height: 80
});
canvas.add(square);
canvas.renderAll();
$('#duplicate-item').on('click', function(event) {
event.preventDefault();
if(canvas.getActiveObject()) {
var actObj = canvas.getActiveObject();
console.log('active object'+actObj);
var clone = fabric.util.object.clone(canvas.getActiveObject());
clone.set({left: actObj.left+10,top: actObj.top+10});
clone.setCoords();
canvas.add(clone);
canvas.renderAll();
}
});
检查出你的'selectedObject'并确保它不包括任何克隆的对象。这听起来像是重复了以前的重复以及预期的对象。 –
是的......锡你能说得对吗......我在canvas.on里面调用了clone函数('object:selected',function(options){...所以它复制了我所有的svgs –