我創建了一個包含大背景圖片的大塊的大頁面,所以我認爲最好的辦法是在後臺顯示預加載器並加載圖片並更新加載器(image 4 of 20 ,ecc)。我的問題是:當onload事件觸發我的加載器時,我仍然看到加載的圖像,這意味着它沒有完全加載。爲什麼會發生?任何想法?image onload trouble
這裏的頁面:
http://zhereicome.com/experiments/statics/myascensor/#1-1
在此先感謝
nImages = $('.slide').length;
loadedImgs = 0;
var bgImages = ['img/bbb.png','img/bbb2.png','img/bbb3.png'];
$('.slide').each(function(i){
var curSlide = $(this);
var img = new Image();
img.src = bgImages[ i % 3 ];
img.onLoad = imageLoaded(img, curSlide);
})
function imageLoaded(img, curSlide){
curSlide.css('backgroundImage', 'url(' + img.src + ')');
loadedImgs++;
if(nImages == loadedImgs){
$('#container').css('visibility','visible');
$('#loader-cont').fadeOut(1000);
}
$('.loader-inner .title').text(loadedImgs/nImages);
}
使用onready代替。 – NotGaeL
另外,模式是img.onload = someFunc; _THEN_ img.src = someFile;在嘗試加載文件之前,您必須告訴它在文件加載時要執行的操作。如果圖像已被緩存,您可以很輕鬆地不會觸發onload事件。它可能「工作」(大部分),但它不是正確的方法。 – enhzflep