注册 登录
编程论坛 JavaScript论坛

canvas画图,背景图片总盖住其他内容

carsontu 发布于 2015-08-09 12:42, 2044 次点击
我用canvas画图,同时执行的加载背景图片总盖住其他的画线,即便背景图是先执行的(放在后执行也试过,一样)。
但如果把画线的动作放在其他事件里执行,就可以在背景图片上方。
这是怎么回事?

[ 本帖最后由 carsontu 于 2015-8-9 16:56 编辑 ]
2 回复
#2
carsontu2015-08-09 16:55
回复 楼主 carsontu
不好意思,之前的代码摘错了。删了重贴在下面:

<p>
  <canvas id="myCanvas" width="520" height="520" style="border:1px solid #d3d3d3;">
    Your browser does not support the HTML5 canvas tag.
  </canvas>
  
  <script>
var c=document.getElementById("myCanvas");

var ctx=c.getContext("2d");
    var bakgrd=new Image();
    bakgrd.src="Images/wood1.jpg";
    bakgrd.onload=function(){
    ctx.drawImage(bakgrd,0,0);
    }
ctx.stroke();
</script>

<script>
ctx.beginPath();

for(var i=0; i<19; i++) {
    ctx.moveTo(20+i*30,20);
    ctx.lineTo(20+i*30,500);
    ctx.moveTo(20,20+i*30);
    ctx.lineTo(500,20+i*30);
}
ctx.stroke();
</script>

[ 本帖最后由 carsontu 于 2015-8-9 16:57 编辑 ]
#3
冰镇柠檬汁儿2015-08-10 10:55
问题应该在
bakgrd.onload=function(){
    ctx.drawImage(bakgrd,0,0);
}
这个地方,onload事件本身执行的就比较晚,是在页面加载之后执行的,换个事件,或者干脆直接执行ctx.drawImage(bakgrd,0,0);不可以吗
1