我有一個畫布和100個小圖像,我想將它們以網格狀形式添加到我的畫布中。僅在加載後顯示HTML5 Canvas中的數百個微小圖像
我已經實現了這個功能,但是圖像在畫布上逐一繪製,有時第40個位置的圖像可能會在第10個位置的圖像之前繪製。
這需要幾秒鐘,然後我得到我想要的結果,但我想知道如何才能顯示圖像只有他們加載後?
我知道還有其他類似問題的問題,但我已經閱讀了所有這些問題,並嘗試了他們的解決方案,但尚未成功。
我有這一段代碼使用嵌套的for循環繪製圖像逐一在畫布上的正確的位置:
for(...) {
for(..) {
add_image(source, row, column, width, height);
}
}
現在add_image
實際創建的圖像對象,並繪製其onload
function add_image(...) {
let image = new Image();
image.src = source;
image.onload = function() {
context.drawImage(img, row, col, width, height);
}
}
在這種情況下,首先加載所有圖像並「繪製」它們的最佳方法是什麼?我試圖創建一個數組並填充所有圖像對象,然後當所有的圖像被加載時,我會運行for循環來繪製圖像,但它不會工作,我沒有看到控制檯錯誤,所以我是左無知。
預先感謝您!
你想等到它們全都加載之後再顯示它們嗎?另一種方法就像這個答案中所描述的那樣,一旦它們可用,它就按照正確的順序顯示圖像http://stackoverflow.com/questions/39506073/how-to-make-sure-images-load-sequentially/ 39526950#39526950 –
在互聯網上這已被問** ** **次。你有沒有試過'javascript預加載圖像'或'javascript等到所有的圖像加載'和喜歡? – vsync