search

Home  >  Q&A  >  body text

javascript - canvas的drawImage无法显示图像

经测试,在firefox上可以显示图片,但是在chrome上无法显示,求教?

<style>
#canvas{
border:1px solid yellow;
position:absolute;
left:500px;
top:50px;
}
</style>

<script src="demo.js"></script>

demo.js:
window.onload=function(){
var Canvas=document.getElementById("canvas");
var cxt=Canvas.getContext("2d");
var bg=new Image();
bg.src="../img/2-14020314314A26.jpg";
cxt.drawImage(bg,0,0);
};

伊谢尔伦伊谢尔伦2820 days ago454

reply all(2)I'll reply

  • PHP中文网

    PHP中文网2017-04-10 15:22:09

    window.onload=function(){
        var Canvas=document.getElementById("canvas");
        var cxt=Canvas.getContext("2d");
        var bg=new Image();
        //你指定了图片的地址,但是图片的加载是需要时间的
        bg.src="../img/2-14020314314A26.jpg";
        //执行完上面一行,马上就开始画这个图
        //虽然bg这个对象有了,但是图片还没有加载完成,因此画的时候什么都没有
        cxt.drawImage(bg,0,0);
    };
    

    改成这样:

    window.onload=function(){
        var Canvas=document.getElementById("canvas");
        var cxt=Canvas.getContext("2d");
        var bg=new Image();
        //先指定一个回调函数,图片加载好之后自然会回来执行
        bg.onload = function () {
            cxt.drawImage(bg,0,0);
        };
        //加载图片,完成后执行刚才的函数
        bg.src="../img/2-14020314314A26.jpg";
    };
    

    感兴趣的话可以来看看我的Gorgeous.JS。

    reply
    0
  • 天蓬老师

    天蓬老师2017-04-10 15:22:09

    var bg=new Image();
    bg.src="../img/2-14020314314A26.jpg";//只是更新了DOM对象,图片数据信息还未加载完成,加载资源是异步执行的
    需要监听load事件的,事件发生后,就能获取资源
    如楼上所写...

    reply
    0
  • Cancelreply