canvas的drawImage()方法,图片不显示。

js代码:varxx=Math.ceil(Math.random()*8);varres=["images/hongluan.jpg","images/hongyan.j... js代码:
var xx = Math.ceil(Math.random()*8);
var res = ["images/hongluan.jpg",
"images/hongyan.jpg",
"images/qiangnei.jpg",
"images/qiangwai.jpg",
"images/tianxi.jpg",
"images/xianchi.jpg",
"images/yumen.jpg",
"images/zhengyuan.jpg",
"images/muyu.jpg"];
var img = document.getElementById("img");
img.setAttribute("src",res[xx].toString());
var canvas = document.getElementById("thecanvas");
var cxt = canvas.getContext("2d");
cxt.drawImage(img,0,0,350,427);

html代码:
<img id="img" src="" alt="" style="display:none">
<canvas style="position: absolute; z-index: 1;bottom: 2%;" width=350 height=427 id="thecanvas">
展开
 我来答
eq279222
2016-11-18 · TA获得超过167个赞
知道小有建树答主
回答量:128
采纳率:0%
帮助的人:84.8万
展开全部
首先给个小建议,img标签压根不需要你手动写,你可以直接创建,代码如下:
var img=new Image();
img.src=res[xx];

其次是大问题,就是你的图片为什么没有在canvas中绘制出来,因为你需要监听img的加载事件,要等图片加载完成才调用drawImage,不然会有问题,代码如下:
img.onload = function(){
cxt.drawImage(img,0,0,350,427);

}
纯洁的小树
2016-11-18 · TA获得超过3386个赞
知道大有可为答主
回答量:2536
采纳率:71%
帮助的人:454万
展开全部
你要等图片载入之后再使用drawImage来写进去,也就是给你的img绑定一个load事件,drawImage卸载函数里面
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式