Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript fabric.js在另一个对象下面移动对象_Javascript_Html_Fabricjs - Fatal编程技术网

Javascript fabric.js在另一个对象下面移动对象

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;

我有两层(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;
但是,当我开始拖动层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
    });

我这样做了,但是现在我在选择元素时遇到了一些困难。例如:选择较大的矩形,然后尝试选择后面的文本。如果我错过了,谢谢。