绘制矩形不能遮挡我的图像

Drawing rectangle can not shadow my image

我正在尝试使用 Konvajs 在现有图像对象上绘制一些东西。 所以我这样编码:

var stage = new Konva.Stage({
    container: 'underground-map-container',
    width: window.innerWidth,
    height: 1121.6
});

var layer = new Konva.Layer();

var imageObj = new Image();
imageObj.onload = function () {
    var parking_img = new Konva.Image({
        image: imageObj,
        width: 1328,
        height: 878.6
    });
    layer.add(parking_img);
    stage.add(layer);
};
imageObj.src = "../static/img/underground-map.png";


var rect = new Konva.Rect({
    x: 700,
    y: 50,
    width: 200,
    height: 200,
    fill: 'blue',
    opacity:1
});
layer.add(rect);

var rect1 = new Konva.Rect({
    x: 800,
    y: 50,
    width: 200,
    height: 200,
    fill: 'red',
    opacity:1
});
layer.add(rect1);

rect1 可以遮蔽 rect,但是,它们都不能遮蔽我的图像。有谁知道怎么做,谢谢!

图像在加载时添加到图层中。它发生在添加矩形之后,因此图像位于顶部。要移动图像,您可以使用:

  1. parking_img.moveToBottom()
  2. parking_img.setZIndex(0)

重要提示: 只有在将图像添加到图层后才使用这些方法,例如:

var parking_img = new Konva.Image({
    image: imageObj,
    width: 1328,
    height: 878.6
});
layer.add(parking_img);
parking_img.moveToBottom();
layer.draw();