2011-10-06 37 views
3

构建我自己的图像滑块,在Firefox中完美运行。然而,在Chrome/Safari中,第一次打开页面时,图像往往无法加载。 (如果您刷新一切都很好)Chrome/Safari图像加载器,首次开放

var count = $("#show-image img").size(); 
var img = $("#show-image img"); 
$(document).ready(function() { 
for(i=0;i<count;i++){ 
    var width = img[i].width; 
    var height = img[i].height; 
    $(img[i]).css({"width": width, "height": height}); 
    console.log(img[i].width); 
} 
}); 

在Chrome和Safari,第一次页面加载某些图像所得到的高度和宽度设置为0px。我假设因为图像尚未完全加载。

如何在页面实际完全加载时运行代码?

回答

2

作为一种快速简单的解决方案,请使用.load()

一个更好的解决办法是使用this jQuery plugin

$(document).ready(function() { 
    $('#show-image').imagesLoaded(function() { 
     /* your code here */ 
    }); 
}); 

好处是,你只需要等待加载那些特定的图像,而不是一切,你会为​​。

+0

奇怪的是,我从来没有任何与.load()有关的问题,即使在缓存的图像上。看起来像一个像样的插件,但。 –

+0

'.load()'解决了他有的问题,这与'.ready()'有关。 – thirtydot

+0

该插件工作完美,真正容易实现。感谢您的链接:) – Bankzilla