我們在寫 jquery 的時候一般都會寫 $(document).ready,加載完成事件還有一個就是 onload
onload 與 ready 的區別是:
1、ready 是 DOM 加載完成的事件
2、onload 是所有內容加載完成(如:圖片)
我們如果要判斷某一塊 div 中的內容是否完全加載完成可以通過 onload 事件。
同理,判斷圖片是否加載完成可以在 img 元素上綁定 onload 事件:
<img id="img">
document.querySelector('#img').onload = function() {}
如果需要判斷多張圖片,可以借助 Promise
let images = [
'1.jpg',
'2.jpg'
];
let promiseAll = [], imgs = [], total = images.length;
for (let i = 0; i < total; i++) {
promiseAll[i] = new Promise((resolve, reject) => {
imgs[i] = new Image();
imgs[i].src = images[i];
imgs[i].onload = function() {
resolve(imgs[i]);
};
})
}
Promise.all(promiseAll).then(img => {
// 全部圖片加載完成
})
