Javascript fabric.js在另一个对象下面移动对象
我有两层(0,1)。0是画布上的底部图像,1是顶部图像。层0是人体模板,层1是一些眼睛。我希望能够移动最底层(身体层),而不移动顶层或覆盖顶层。基本上,眼睛坐在身体上并且是可见的,但是能够移动身体图像。我通过以下方式实现了大部分目标:Javascript fabric.js在另一个对象下面移动对象,javascript,html,fabricjs,Javascript,Html,Fabricjs,我有两层(0,1)。0是画布上的底部图像,1是顶部图像。层0是人体模板,层1是一些眼睛。我希望能够移动最底层(身体层),而不移动顶层或覆盖顶层。基本上,眼睛坐在身体上并且是可见的,但是能够移动身体图像。我通过以下方式实现了大部分目标: canvas.item(0).selectable = true; canvas.item(0).evented = true; canvas.item(1).selectable = false; canvas.item(1).evented = false;
canvas.item(0).selectable = true;
canvas.item(0).evented = true;
canvas.item(1).selectable = false;
canvas.item(1).evented = false;
但是,当我开始拖动层0(人体层)时,它会将该层带到顶部并覆盖眼睛,即使当我打印对象数组时,它仍然表示身体层是索引0。我错过了什么?这可能吗?将较低层移动到较高可见层下方
这就是我最初添加图层的方式:
fabric.Image.fromURL(imgString, function(oImg) {
oImg.scale(0.4);
canvas.centerObject(oImg);
canvas.add(oImg);
canvas.renderAll();
});
简单地添加
preserveObjectStacking: true
画布初始化器修复了这个问题
var canvas = new fabric.Canvas('mainCanvas',{
preserveObjectStacking: true
});
我这样做了,但是现在我在选择元素时遇到了一些困难。例如:选择较大的矩形,然后尝试选择后面的文本。如果我错过了,谢谢。