为什么图片在上,颜色在下,没有图片在下,颜色在上?

为什么图片在上,颜色在下,没有图片在下,颜色在上?

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>canvas图片</title>
    <style>
        canvas{background-color:lightblue;}
    </style>
</head>
<body>
    <canvas id="canvas" width="800px" height="800px">您的浏览器不支持canvas
    </canvas>
    <script>
        var canvas=document.getElementById("canvas");
        var context=canvas.getContext('2d');


        context.translate(400,400);


context.beginPath();
var img = new Image();
        img.src = "http://img1.sycdn.imooc.com/climg//59859f4d00014f1503000100.jpg";
img.onload=function(){
context.drawImage(img,-75,-25,150,50);
};
context.arc(0,0,150,0,2*Math.PI,true);
context.fill();
    </script>
</body>
</html>

就是看不见图片,被颜色挡住了

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,非常抱歉,老师看错了,以为同学要表达的是图片显示不出来。

这里若是想让背景覆盖到图片上,可以将img.onload去掉,例:

http://img1.sycdn.imooc.com/climg/5e5b543b09a3106005670202.jpg

这是因为代码按照从上到下的顺序执行,但是当图片加载这里,是图片加载完才插入的。而这个时候,继续往下执行,已经填充完了,所以背景是在下面的。

而若是去掉加载完插入,直接插入。然后再填充,背景就在上面了。

如果我的回答帮助了你,欢迎采纳,祝学习愉快~

好帮手慕糖 2020-03-01 11:53:58

同学你好,如下,老师这里测试是可以看见图片的。

http://img1.sycdn.imooc.com//climg/5e5b3198096284cf05040377.jpg

老师使用的谷歌浏览器进行测试,同学可以再测试下。

祝学习愉快~

  • 提问者 迷失的小麦 #1
    这个图片在上,颜色在下是不是固定死的,无论什么情况都是这样,正如老师测试的那样(不会发生图片在下,颜色在上的情况)
    2020-03-01 11:56:35
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
3.WebAPP开发与小程序
  • 参与学习           人
  • 提交作业       622    份
  • 解答问题       6815    个

微信带火了小程序,也让前端工程师有了更多的展现机会,本阶段带你从移动基础知识的学习到webAPP开发,及小程序开发,让你PC端与移动端两端通吃。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师