我有一个Javascript地图工具包,它使用图像对象来加载图像。每次移动/调整地图大小时,都会加载许多图像。但是我想知道如何在执行移动/调整大小操作后加载所有图像时启动某个功能。我如何知道一批图像被加载?
有没有一种方法可以创建像“allimages.onload = function(){}”这样的侦听器?
或者是否有任何解决方法?
我有一个Javascript地图工具包,它使用图像对象来加载图像。每次移动/调整地图大小时,都会加载许多图像。但是我想知道如何在执行移动/调整大小操作后加载所有图像时启动某个功能。我如何知道一批图像被加载?
有没有一种方法可以创建像“allimages.onload = function(){}”这样的侦听器?
或者是否有任何解决方法?
您将不得不保留尚未加载的图像的数量,并在出色图像计数达到0时调用最终功能。
function nofunction() {}
function loadImages(srcs, callback) {
var images= [];
var imagen= srcs.length;
for (var i= 0; i<srcs.length; i++) {
var image= new Image();
image.onload=image.onerror= function() {
imagen--;
if (imagen==0) {
this.onload=this.onerror= nofunction;
callback();
}
};
image.src= srcs[i];
images.push(image);
}
return images;
}
...
var images= loadImages(['/img/1.gif', '/img/2.gif'], function() {
alert('yay');
});
for (var i= 0; i<images.length; i++)
mapelement.appendChild(images[i]);
谢谢。也许这就是我想要的,我会很快尝试 – 2009-11-05 01:04:19
不久前我写了a blog post关于检测单个图像的负载。您可以使用该示例来构建检查是否加载了所有图像的函数。我希望这会有所帮助。
什么是JavaScript地图工具包?任何示例代码,链接到?JavaScript地图工具包的主页? – jitter 2009-11-04 10:42:30
另外:当所有图像加载完成时会触发此功能,该怎么办?也许我们可以帮助你实现相同的结果,而不需要实现这样一个监听器,这将很难创建。 – 2009-11-04 10:53:00