Hay,我正在使用这个脚本
function preloader(images){
var i = 0;
imageObj = new Image();
// start preloading
for(i=0; i<=images.length; i++){
imageObj.src=images[i];
imageObj.onLoad = check(i, images.length / 2);
};
}
并将一堆图像传入其中以进行预加载。
check()函数是这个
check = function(e,i){
if( e == i ){
run_fading_gallery(imgcode);
$(".loading").hide();
};
}
但它似乎没有起作用。
有什么想法吗?或者我有什么可以上网的吗?
答案 0 :(得分:1)
问题是你只设置了1个imageObj并更改了它的源和事件处理程序。为什么不尝试为每个图像创建图像对象? (在你的循环中)。
更具体一点:
function preloader(images){
var i = 0;
// start preloading
for(i=0; i<=images.length; i++){
imageObj = new Image();
imageObj.src=images[i];
imageObj.onLoad = check(i, images.length / 2);
};
}
答案 1 :(得分:0)
images.length / 2
将不是整数,因此在检查函数中它永远不会等于i
。试试Math.floor
:
function preloader(images){
var i = 0;
imageObj = new Image();
// start preloading
for(i=0; i<=images.length; i++){
imageObj.onLoad = check(i, Math.floor(images.length / 2));
imageObj.src=images[i];
};
}
答案 2 :(得分:0)
它无效。假设你有100张图片。 图像异步加载。如果加载的第一个图像是图像编号50,则该功能将说明已加载50个图像,而只加载了1个图像。