canvas 画图片没有显示

本文介绍了一个H5 Canvas绘图时遇到的问题及解决方案。由于图片异步加载导致绘图失败,通过将绘图代码置于窗口加载事件中解决。文章提供了具体的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

h5新添加了一个元素叫做canvas画布,可以用它画出很多的图形。其中提供了一个方法 drawImage
方法的说明可以看canvas手册
我按照上面写了一个demo

<body>
    <img src="furit.png" id="fruit">
    <canvas id="canvas" width="400" hegiht="400"></canvas>
</body>
var fruit = document.getElementById("fruit");
var canvas = document.getElementById("canvas");
var context = canvas.getContext('2d');
context.drawImage(fruit,40,40);

这样之后打开页面怎么都显示不出来,原来习惯ctrl + f5 强制刷新页面,怎么刷新都不显示,各种有问题,然后没有强制刷新,普通刷新一遍就有了。这个时候意识到了图片是异步加载的,所以是在图片加载完毕之前就执行了js代码,如果强制刷新就还是一样的要重新加载,而如果是普通刷新就会用缓存去加载资源,重新执行js代码。后面我在代码中加入了一下几行就可以打开页面就画出图片了

window.onload = function(){ 
    var fruit = document.getElementById("fruit");
    var canvas = document.getElementById("canvas");
    var context = canvas.getContext('2d');
    context.drawImage(fruit,40,40);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值