Javascript Fabric.js解组项目会更改其位置
您好,我正在尝试使用fabric.js解组项目,但每次我尝试解组项目时,它们在画布上的位置都会发生变化 我尝试了很多技巧,甚至尝试手动重新计算位置,但我总是不喜欢 这篇文章列出了什么样的接缝是最好的技术 由于组.destroy()调用了_restoreObjectsState,因此我改为使用它(两者的结果相同) 我有一个JSFIDLE,它显示了奇怪的行为 作为参考,我试图做的是解组这些项目并将它们发送到另一个画布以模拟组编辑模式。我就快到了,但我不知道如何在不失去位置的情况下解组Javascript Fabric.js解组项目会更改其位置,javascript,fabricjs,Javascript,Fabricjs,您好,我正在尝试使用fabric.js解组项目,但每次我尝试解组项目时,它们在画布上的位置都会发生变化 我尝试了很多技巧,甚至尝试手动重新计算位置,但我总是不喜欢 这篇文章列出了什么样的接缝是最好的技术 由于组.destroy()调用了_restoreObjectsState,因此我改为使用它(两者的结果相同) 我有一个JSFIDLE,它显示了奇怪的行为 作为参考,我试图做的是解组这些项目并将它们发送到另一个画布以模拟组编辑模式。我就快到了,但我不知道如何在不失去位置的情况下解组 谢谢你的帮
谢谢你的帮助。我找到了一种方法让它工作: fabric的前沿版本解决了此问题:
var canvas = new fabric.Canvas('viewport');
var text1 = new fabric.IText('Text1', {
left: 0,
top: 0
});
var text2 = new fabric.IText('Text2', {
left: 0,
top: 125
});
var group = new fabric.Group([text1, text2], {
left: 150,
top: 100
});
canvas.add(group);
document.getElementById('ungroup').addEventListener('click' ,function ungroup() {
var destroyedGroup = group.destroy();
var items = destroyedGroup.getObjects();
items.forEach(function (item) {
canvas.add(item);
});
canvas.remove(group);
});