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

时间:2018-05-22 04:49:46

标签: konvajs

我正在尝试使用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,但是,它们都不能遮挡我的图像。有谁知道怎么做,谢谢!

following is the actual output

1 个答案:

答案 0 :(得分:2)

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

  1. parking_img.moveToBottom()
  2. parking_img.setZIndex(0)
  3. 重要提示:仅在将图像添加到以下图层后才使用这些方法:

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