Fabric.JS не имеет настоящей функциональности z-index, как вы видите в css.Вместо этого объекты на холсте работают как массив, где индекс каждого объекта определяет, где он находится в порядке наложения.Использование canvas.insertAt()
позволяет указать конкретный индекс для вставки объекта в массив, а длина массива всегда определяется количеством объектов на холсте.
Вставка объекта с индексомПоэтому 0 сместит другие объекты в массиве так, чтобы новый объект отображался в нижней части порядка наложения.
var canvas = new fabric.StaticCanvas('canvas');
var render_items = function() {
var rect1 = new fabric.Rect({
originX: 'left',
originY: 'top',
left: 25,
top: 10,
width: 50,
height: 50,
fill: 'red'
});
var layerA = new fabric.Group([rect1], {
originX: 'left',
originY: 'top'
});
canvas.insertAt(layerA, 0);
var rect2 = new fabric.Rect({
originX: 'left',
originY: 'top',
left: 30,
top: 20,
width: 50,
height: 50,
fill: 'blue'
});
var layerB = new fabric.Group([rect2], {
originX: 'left',
originY: 'top'
});
canvas.insertAt(layerB, 0);
}();
#canvas {
border:1px solid #000000;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/2.3.5/fabric.min.js"></script>
<canvas id="canvas" width="200" height="200"></canvas>