有時(shí)候我們需要獲取頁(yè)面中圖片的寬高來(lái)完成某些操作,但是要想準(zhǔn)確獲取到圖片的尺寸傀履,需要一個(gè)前提條件缆巧,就是等待圖片加載完之后再獲取布持,就不會(huì)出問(wèn)題了。不然圖片未加載完就獲取的話陕悬,獲取的寬高為0题暖;
那么問(wèn)題來(lái)了,怎么判斷圖片是否加載完了呢捉超? 這里利用圖片沒(méi)有加載完成的時(shí)候胧卤,寬高為0。我們很容易判斷圖片的一個(gè)加載情況拼岳。
使用定時(shí)器枝誊,每隔500毫秒獲取一次圖片的寬高;直到圖片寬高不為0裂问,即圖片加載完成,此時(shí)獲取到的圖片的尺寸牛柒,就是圖片加載完之后的尺寸堪簿。
代碼如下:
vart_img;// 定時(shí)器
varisLoad=true;// 控制變量
?
// 判斷圖片加載狀況,加載完成后回調(diào)
isImgLoad(function(){
// 加載完成
});
?
// 判斷需要判斷的圖片是否加載完成的函數(shù)
functionisImgLoad(callback){
$('.img').each(function(){
// 高度為0皮壁,說(shuō)明有圖片還未加載完成椭更,將isLoad設(shè)為false,并退出each
if(this.height===0){
isLoad=false;
returnfalse;
}
});
// 直到圖片沒(méi)有發(fā)現(xiàn)為0的蛾魄。加載完畢
if(isLoad){
clearTimeout(t_img);// 清除定時(shí)器
callback();
// 為false虑瀑,因?yàn)檎业搅藳](méi)有加載完成的圖,將調(diào)用定時(shí)器遞歸
}else{
isLoad=true;
t_img=setTimeout(function(){
isImgLoad(callback);// 遞歸掃描
},500);// 我這里設(shè)置的是500毫秒就掃描一次滴须,可以自己調(diào)整
}
}
?