为什么它出现在画布后面而不是画在画布上?

时间:2017-08-09 22:12:09

标签: javascript html canvas png

我正在使用HTML5和canvas进行动态网络地图。

我以PNG格式加载了地图,但每当我尝试绘制它时,它会像这样在地图后面绘制:

Map example

我需要它来绘制 白色方块。

这是我的代码:

window.onload = function() {
  var canvas = document.getElementById('canvas1');
  var ctx = canvas.getContext('2d');
  var img = new Image();
  img.onload = function() {
    ctx.drawImage(img, 0, 0);
  }
  img.src = "img/plano.png"; //transparent png
  ctx.fillRect(1039, 150, 50, 50);
}

提前致谢!

1 个答案:

答案 0 :(得分:0)

fillRect需要在图像加载后发生。图像以异步方式加载,因此唯一安全的地方就是在drawImage ...

之后
img.onload = function() {
    ctx.drawImage(img, 0, 0);
    ctx.fillRect(200,200,50,50);  // Draw rect after image
}