Bir dizi (20+) büyük resim (her biri ~ 500 KB) artarda yükleyecek kod üzerinde çalışıyorum. Her görüntü yüklendikten sonra içeri girer. 'u this discussion'dan başlangıç noktası olarak kullandım.JQuery öğelerini art arda yüklemek ve kaldırmak için öğelerde
Görüntülerin tam istediğim şekilde yüklenmesini sağladım, ancak bu sıralı yüklemeyi kırmadan birkaç şey yapmam gerekiyor. Üçüncü ve dördüncü görüntüler arasında bir iframe içeren işaretlemeyi yüklemem gerekiyor ve resimlerden sonra bir bağlantı yüklemem gerekiyor. İşte ihtiyacım biçimlendirme çıktı örneğidir:
<div id="container">
<img src="img-1.jpg" />
<img src="img-2.jpg" />
<img src="img-3.jpg" />
<div><iframe></iframe></div>
<img src="img-4.jpg" />
<img src="img-5.jpg" />
<img src="img-6.jpg" />
<img src="img-7.jpg" />
<img src="img-8.jpg" />
<img src="img-9.jpg" />
<a href="/link/">Link text</a>
</div>
Ben sadece iyi görüntü yükleyebilirsiniz ama ilk üç yüklendikten sonra bu iframe yükleyecek ve sonra geri kalanını olması nasıl şaşırıp görüntüler yüklenir ve sonra bağlantı. İşte benim şimdiki javascript:
var no = 22,
main = [],
i;
for (i = 1; i <= no; i++) {
main[i] = "path/to/image/folder/img-" + i + ".jpg";
}
function loadImages(arr,loc) {
if (arr.length === 0) {
return;
}
function imageLoaded(img) {
$(img).hide().appendTo(loc).fadeIn(800);
}
function loadImage() {
var url = arr.shift(),
img = new Image(),
timer;
img.src = url;
if (img.complete || img.readyState === 4) {
imageLoaded(img);
if (arr.length !== 0) {
loadImage();
}
}
else {
timer = setTimeout(function() {
if (arr.length !== 0) {
loadImage();
}
$(img).unbind("error load onreadystate");
}, 10000);
$(img).bind("error load onreadystatechange", function(e) {
clearTimeout(timer);
if (e.type !== "error") {
imageLoaded(img);
}
if (arr.length !== 0) {
loadImage();
}
});
}
}
loadImage();
}
loadImages(main,"#container");
"hayır" değişken arasında gezinmek için resim sayısını belirler (I görüntülerin farklı sayılarla birden çok sayfaya yapmanız gerekir) ve loadImages fonksiyonu için argüman alır dizi arasında geçiş yapmak ve görüntüleri koymak. Bu kod muhtemelen çok daha temiz olabilir, ama javascript için yeniyim. Herhangi bir yardım büyük takdir edilecektir!
Bu iframe tam olarak ihtiyacım olan yere eklemek için çok çalışıyor. Yine de sonunda yüklenecek bağlantıyı kuramıyorum. Iframe: 'if ($ (" # container img "). Length == 3) { $ (" # container img: son çocuk "). 'sonunda bağlantı için , bu iç loadImages koyarak denedim: ' if (arr.length === 0) { linkMarkup(); dönüş; } ' ve bu iç LoadImage: 'halinde (. $ ("# Kap img") uzunluğu == 22) { linkMarkup(); } ' İkincisi, sondan sonuncu görüntüye kadar ikinci görüntü için çalışır. –
Şimdi anladım. Bu eksik parçaydı. Herkese teşekkürler. –