Witam,
Mam problem w galerii zdjęciowej ze skryptem obsługującym wczytwanie zdjęć.
Próbowałem osiągnąć efekt taki, że po załadowaniu jakiegoś zdjęcia, ładuje się odrazu następne...
oto link do przykładowej galerii...
http://www.pawelwoo.com/gallery.php/11/264.htmlOto cała logika JSa
function nextPic() {
if(newPic < totalPic) {
newPic++
document.pic.src=Galimg[newPic]
if(newPic + 1 <= totalPic) { // Sprawdza czy to nie ostatnie zdjęcie. Jeśli nie, ładuje do przeglądarki
GRSKEZ = new Image(HEIimg[newPic + 1],HEIimg[newPic + 1])
GRSKEZ.src = Galimg[newPic + 1]
}
refreshCounter()
}
}
function prevPic() {
if(newPic != 1) {
newPic--
document.pic.src=Galimg[newPic]
refreshCounter()
}
}
function refreshCounter() { // funkcja która ustawia dane zawarte w tablicy Desimg. Dodatkowo ustawia disablowość przycisków ruchu.
document.getElementById("imgData").innerHTML = Desimg[newPic];
if(newPic == 1) { document.getElementById('prev').disabled=true } else { document.getElementById('prev').disabled=false }
if(newPic == totalPic) { document.getElementById('next').disabled=true } else { document.getElementById('next').disabled=false }
}
function cyclePic() {
setTimeout("cycle()", 5*1000)
}
function cycle() { // Ta funkcja odpowiada za "slideshow"
if(!stopIT) {
if(document.getElementById('pic').complete) { // Tu tkwi problem, bo skrypt się nie zatrzymuje... może źle dobieram parametr?
newPic++
if (newPic == totalPic + 1) {
newPic = 1
stopIT=true
document.pic.src=Galimg[newPic]
refreshCounter()
document.getElementById('play').disabled=false
document.getElementById('stop').disabled=true
} else {
document.pic.src=Galimg[newPic]
refreshCounter()
setTimeout("cycle()", 5*1000)
}
} else {setTimeout("cycle()", 1000)}
}
}
Po dane proszę zajerzeć do źródła podanego wyżej.
Proszę o pomoc :/
Teoretycznie najlepiej działa na operze... ff i ie6-7 wolniej ładują i olewają .complete :/
Zmieniłem trochę kod... (na stronie)
Ten post edytował Master Miko 12.01.2007, 00:17:57