濮阳杆衣贸易有限公司

主頁 > 知識庫 > 詳解canvas繪制多張圖的排列順序問題

詳解canvas繪制多張圖的排列順序問題

熱門標(biāo)簽:欣鼎電銷機(jī)器人 效果 ok電銷機(jī)器人 黃石ai電銷機(jī)器人呼叫中心 地圖標(biāo)注軟件打印出來 電話機(jī)器人技術(shù) 智能電銷機(jī)器人被禁用了么 高德地圖標(biāo)注商戶怎么標(biāo) 惡搞電話機(jī)器人 如何查看地圖標(biāo)注

在開發(fā)中,如果遇到需要使用canvas同時(shí)繪制多張圖片,但因?yàn)閳D片大小的不一樣,排在數(shù)組前面的圖片不一定能先被load然后繪制,就可能會導(dǎo)致畫出來的圖的排列順序和預(yù)想的不一樣(特別是因?yàn)榭缬蚣恿擞蛎囟ㄏ虻膱D片尤為明顯),我的解決辦法是:先全部畫出來再排序再append到需要的節(jié)點(diǎn)里去。

<div id="myContent"></div>
let imgArray = ['img1.png', 'img2.png'];
let receiveArray = new Array();
let $myContent = document.getELmentById("myContent");
let {imgW, imgH} = {300, 300};

let Canvas = document.createElement('canvas');
let ctx = Canvas.getContext("2d");
let scaleBy = 2;
Canvas.width = imgW * scaleBy;
Canvas.height= imgH * scaleBy;
imgArray.forEach((e, idx) => {
    let img = new Image();
    img.src = e;
    e.addEventListener('load', () => {
        ctx.drawImage(img, 0, 0, imgW * scaleBy, imgH * scaleBy);
        
        let imgCont = new Image();
        imgCont.src = Canvas.toDataURL();
        imgCont.id = 'img' + idx; 
        receiveArray.push(imgCont); // 將繪制的img節(jié)點(diǎn)收集到數(shù)組里,這里的順序可能和imgArray的順序不一樣
        if (receiveArray.length === imgArray.length) { //所有圖片load并繪制完成
            let sortArr = new Array();
            receiveArray.forEach(ex => { //將所有繪制圖片按imgArray順序排序
                sortArr[ex.id.split('img')[1]] = ex;
            })
            sortArr.forEach(ex2 => {
                $myContent.appendChild(ex2)
            })
        }
    })
})

其實(shí)這也是一種略顯無奈的做法,因?yàn)闊o法判斷加載圖片的實(shí)際大小,小的圖片會先load并繪制,如果重定向域名后會加大這種現(xiàn)象,采用了繪制完再排序的做法。如果有誰想到更好的辦法,歡迎指正批評。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

標(biāo)簽:赤峰 聊城 阿壩 盤錦 金昌 中山 綏化 萍鄉(xiāng)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《詳解canvas繪制多張圖的排列順序問題》,本文關(guān)鍵詞  詳解,canvas,繪制,多張,圖,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《詳解canvas繪制多張圖的排列順序問題》相關(guān)的同類信息!
  • 本頁收集關(guān)于詳解canvas繪制多張圖的排列順序問題的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    涿州市| 蒙自县| 湘潭县| 宜君县| 昌宁县| 道孚县| 泸溪县| 平阳县| 宝山区| 尚义县| 长阳| 平凉市| 兰考县| 油尖旺区| 阳江市| 龙陵县| 太原市| 洛浦县| 连江县| 宜良县| 晋城| 鄄城县| 汶上县| 子长县| 阿勒泰市| 五原县| 丰县| 壤塘县| 禄劝| 桃源县| 湖北省| 宝应县| 溧水县| 瑞安市| 原平市| 革吉县| 四平市| 江孜县| 盐边县| 东莞市| 贞丰县|