初次学习canvas,用来作笔记记录下遇到的问题及解决方案html
这里是要将一张图片写到canvas里,按照网上搜索,初写了段代码,但是却没显示,觉得是路径问题,不能跨域名使用,后来改成相对路径后,仍然无效,以下:canvas
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <img src="./ws.jpg" alt="" style="width: 100px;" id="imgDom"> <canvas id="myCanvas" width="300" height="300">Your browser does not support the HTML5 canvas tag.</canvas> <script> var can = document.getElementById("myCanvas"); var ctx = can.getContext("2d"); var imgDom = document.getElementById("imgDom"); ctx.drawImage(imgDom, 0, 0); </script> </body> </html>
后来通过搜索发现,是加载顺序的缘由,很简单对不对?在图片没加载完的时候,不会调用drawImage方法,上代码:跨域
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <img src="http://static.huibuy.shop/tuiguang/zaozhuang/img1.jpg" alt="" style="width: 100px;" id="imgDom"> <canvas id="myCanvas" width="300" height="300">Your browser does not support the HTML5 canvas tag.</canvas> <script> var can = document.getElementById("myCanvas"); var ctx = can.getContext("2d"); var imgDom = document.getElementById("imgDom"); imgDom.onload = function() { ctx.drawImage(imgDom, 0, 0); } </script> </body> </html>
发现两段代码的不一样了么,就是img标签上多了一个onload事件学习