第二个离屏已经做完能够显示,但是调用的时候始终显示不出来是为什么?
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>canvas离屏</title>
<style>
#canvas2{
background-color: black;
}
</style>
</head>
<body>
<canvas width="800px" height="600px" id="canvas">您的浏览器不支持canvas</canvas>
<canvas width="800px" height="600px" id="canvas2">您的浏览器不支持canvas</canvas>
<script>
var canvas=document.getElementById("canvas");
var ctx=canvas.getContext("2d");
var canvas2=document.getElementById("canvas2");
var ctx2=canvas2.getContext("2d");
ctx2.font="50px sans-serif";
ctx2.textAlign="center";
ctx2.textBaseline="middle";
ctx2.fillStyle="rgba(255,255,255,0.3)"
ctx2.fillText("==www.imooc.com=",400,450);
var img=new Image();
img.src="http://img1.sycdn.imooc.com/climg//5aa6633400017bc704170220.jpg";
img.onload=function(){
ctx.drawImage(img,0,0,800,600);
ctx.drawImage(ctx2,0,0,ctx2.width,ctx2.height,0,0,ctx.width,ctx.height)
};
</script>
</body>
</html>
正在回答
同学你好, 因为在img.onload中使用drawImage方法参数写错了, 语法规定第一个参数传入的是画布也就是你这里获取的canvas。但是你传入的ctx只是一个用于在画布上绘图的环境
另, 你这里使用ctx.width的方式不能获取到画布的宽高,需要直接使用画布来获取宽高。 建议修改:

如果帮助到了你, 欢迎采纳!
祝学习愉快~~~
同学你好, 你第一次粘贴的代码只需要修改老师截图红框圈起来的地方就可以了。 示例代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>canvas离屏</title>
<style>
#canvas2 {
background-color: black;
}
</style>
</head>
<body>
<canvas width="800px" height="600px" id="canvas">您的浏览器不支持canvas</canvas>
<canvas width="800px" height="600px" id="canvas2">您的浏览器不支持canvas</canvas>
<script>
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
var canvas2 = document.getElementById("canvas2");
var ctx2 = canvas2.getContext("2d");
ctx2.font = "50px sans-serif";
ctx2.textAlign = "center";
ctx2.textBaseline = "middle";
ctx2.fillStyle = "rgba(255,255,255,0.3)"
ctx2.fillText("==www.imooc.com=", 400, 450);
var img = new Image();
img.src = "http://img1.sycdn.imooc.com/climg//5aa6633400017bc704170220.jpg";
img.onload = function() {
ctx.drawImage(img, 0, 0, 800, 600);
ctx.drawImage(canvas2, 0, 0, canvas2.width, canvas2.height, 0, 0, canvas.width, canvas.height)
};
</script>
</body>
</html>同学可以下去测试一下效果哦~~~
如果帮助到了你, 欢迎采纳!
祝学习愉快~~~
- 参与学习 人
- 提交作业 467 份
- 解答问题 4826 个
本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星