我的情况是我有以下标记:
<div class="image">
<img class="" src="content-images/1.jpg">
<span class="slide" rel="content-images/2.jpg"></span>
<span class="slide" rel="content-images/3.jpg"></span>
<span class="slide" rel="content-images/4.jpg"></span>
</div>
现在在CSS中,div.image
的所有孩子都处于绝对位置,因此他们会相互堆叠。
我正在做的是,在某个触发器上,让我们说当在页面上的其他位置点击按钮时,将span
更改为{{1}在每个范围内将img
设置为src
的情况。图像是大型高分辨率图像,因此可能需要一段时间才能完全加载。
使用javascript / jQuery我需要显示一个加载消息/指示器,从点击按钮到所有rel
被替换为span
完成时负荷。
由于图像和缓存等已知问题,我无法使用jQuery&#39; {
我尝试使用imagesloaded,但它似乎没有做我需要的。
你能想到还有其他方法吗?
答案 0 :(得分:0)
我不太确定,如果这是你想要达到的目的,但你可以尝试一下......
$("#button").click(function(){
console.log("Started loading...");
// Get all spans to replace, and count them
var imgSpans = $("div.image span.slide"),
toLoad = imgSpans.length,
loaded = 0;
// Now load each image
for (var i = 0; i < toLoad; ++i) {
// Closure to keep correct value of i
(function(i){
// Preload image
var img = new Image();
img.src = imgSpans.eq(i).attr("rel");
img.onload = function(){
// When loading has finished, replace span with img...
imgSpans.eq(i).replaceWith(img);
if (++loaded == toLoad) {
// ...and check if all images have been loaded by now
console.log("Finished loading...");
}
};
})(i);
}
});