【发布时间】:2014-03-11 16:32:44
【问题描述】:
我有一个简单的 html 页面,我想在其中加载一堆图像。我想根据用户在屏幕上的光标显示其中一个。基本上我正在尝试做这样的事情:
http://test.vostrel.net/jquery.reel/example/object-movie-camera-sequence/
我分两步执行此操作,第一步是加载低分辨率图像(在不到两秒的时间内加载 60 张图像),第二步是当用户第一次点击时,我将低分辨率换成高分辨率图片(大约 10 秒内 60 张图片)。
这是我的两个功能:
function loadImages() {
var imagesDOM;
for (var j = 0 ; j < directoriesNumber ; j++) {
imagesDOM = new Array();
for (var i = 1 ; i < imageNumber + 1 ; i++) {
images[i] = imageDirectory[j] + "/" + imageBasename + twoDigits(i) + imageExtension;
}
for (var i = 1 ; i < imageNumber + 1 ; i++) {
imagesDOM[i] = new Image();
imagesDOM[i].id = "image" + j + "_" + i;
imagesDOM[i].src = images[i];
$("#cadre").append(imagesDOM[i]);
}
}
}
function loadImagesHigh() {
for (var j = 0 ; j < directoriesNumber ; j++) {
for (var i = 1 ; i < imageNumber+1 ; i++) {
images[i] = imageDirectoryHigh[j] + "/" + imageBasename + twoDigits(i) + imageExtension;
}
for (var i = 1 ; i < imageNumber+1 ; i++) {
$("#image" + j + "_" + i).attr("src",images[i]);
}
}
}
所以问题是如何在客户端监控图片的下载:60 张图片中有 4 张已加载,请稍候...
我已经检查过了: Is there a way to determine when 4 images have been loaded using JS? 但是src是写在html里的。
解决方案,感谢 Aaron Digulla,就像在为 src 分配值之前添加以下事件侦听器一样简单:
$(imagesDOM[i]).load(function () {
console.log("loaded");
}
);
感谢阅读。
【问题讨论】:
-
如果不指定
src,您将如何加载图像? -
这里:imagesDOM[i].src = images[i]; $("#cadre").append(imagesDOM[i]);
标签: javascript jquery html image