鍍金池/ 問答/HTML5  HTML/ 動態(tài)創(chuàng)建的canvas上畫圖像不顯示

動態(tài)創(chuàng)建的canvas上畫圖像不顯示

我創(chuàng)建了幾個canvas,在canvas里又創(chuàng)建了img,然后想讓圖像畫在canvas上,但是只有最有一個顯示了??纯刂婆_的時候img標簽里是有圖片的。

for (n = 0; n<8; n++){
        //在頁面中創(chuàng)建canvas
        var oCan = document.createElement('canvas');
        $("#div1").append(oCan);
        var context=oCan.getContext("2d");
        oCan.innerHTML = '<img src="'+ imgSrc[n]+ '" alt=""/>';
        //imgSrc為一個圖片src的數(shù)組。
        //添加圖片
        var image = new Image();
        image.src = imgSrc[n];
        console.log(image);
        image.onload = function () {
            var imgHeight = this.height;
            var imgWidth = this.width;
            imgWidth=oCan.width;
            imgHeight=oCan.height;
            context.drawImage(image, 0, 0,imgWidth,imgHeight);
            var imageData =context.getImageData(0, 0, imgWidth, imgHeight);
            console.log(imageData.data);
         }       

最后顯示出來的只有最后一張圖片,請問應(yīng)該怎么改才能全部顯示出來?

回答
編輯回答
孤慣

看注釋

for (n = 0; n<8; n++){
        //在頁面中創(chuàng)建canvas
        var oCan = document.createElement('canvas');
        $("#div1").append(oCan);
        var context=oCan.getContext("2d");
        oCan.innerHTML = '<img src="'+ imgSrc[n]+ '" alt=""/>'; //這里是干什么用????
        //imgSrc為一個圖片src的數(shù)組。
        //添加圖片
        var image = new Image();
        image.src = imgSrc[n];
        console.log(image);
        image.onload = function () {
            var imgHeight = this.height;
            var imgWidth = this.width;
            imgWidth=oCan.width;
            imgHeight=oCan.height;
            context.drawImage(image, 0, 0,imgWidth,imgHeight); //你把圖片始終畫在0,0位置,所有圖片全覆蓋在一起了
            var imageData =context.getImageData(0, 0, imgWidth, imgHeight);
            console.log(imageData.data);
         }      
2018年2月4日 18:41