2016-08-25 95 views
3

我有兩個圖層(0,1)。 0是畫布上的底部圖像,1是頂部。第0層是人體模板,第1層是一些眼睛。我希望能夠移動最底層(身體層),而不移動頂層或覆蓋頂層。基本上,眼睛坐在身上,可以看到,但能夠移動身體圖像。我一直都能夠達到這個最有:fabric.js將對象移動到另一個對象下方

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(); 


    }); 

回答

2

簡單地增加

preserveObjectStacking: true 

帆布初始化固定這一點。

var canvas = new fabric.Canvas('mainCanvas',{ 
     preserveObjectStacking: true 
    }); 
+0

我這樣做了,但現在我在選擇元素時遇到了一些麻煩。例如:https://fiddle.jshell.net/filiperoberto/zLz6cy2L/4/選擇較大的矩形,然後嘗試選擇文本 –

相關問題