2012-08-26 187 views
3

我有一个web应用程序,其中有一些图像。jQuery图像预加载

将在我的页面显示一个叠加在开始,并将自动淡出所有图像loades。

我需要的是这样的

其粗糙的代码

var image1="image1.jpg"; 
var image2="image2.jpg"; 
var image4="image4.jpg"; 

image1 & image2 & image4 loaded then fadeout #preload and show content. 

请帮我...我想这..但没有工作..

var img1 = new Image(); 
img1.src = "../images/wall.jpg"; 

img1.onload = function() { 
    alert("loaded"); 
}; 
+1

你的代码工作对我来说:http://jsfiddle.net/ZrENE/ – Oriol

+0

重复:HTTP:// stackoverflow.com/questions/476679/preloading-images-with-jquery?rq=1 –

回答

1
var images_loading = $('img').length; 
$('img').load(function(){ 
    if(!--images_loading) { 
    // all images loaded 
    } 
}); 

请请注意,您不能使用display:none来隐藏图像。

使用display:none将阻止您的浏览器下载图像。改为用户visibility:hidden

+0

我最初的想法与这种方法类似,但是我正在检查其中一个图像加载时他们的'complete'属性上的实际图像。我更喜欢简单地检查柜台的想法。它更好,更少。 – Richard