Witam! Chciałbym odświeżyć ten temat. Mój kod z użyciem setInterval nie działa pod Firefoxem tylko pod IE.
CODE
images = new Array('images/001.jpg',
'images/002.jpg',
'images/003.jpg',
'images/004.jpg',
'images/005.jpg',
'images/006.jpg',
'images/007.jpg',
'images/008.jpg',
'images/009.jpg',
'images/010.jpg',
'images/011.jpg',
'images/012.jpg',
'images/013.jpg',
'images/014.jpg',
'images/015.jpg',
'images/016.jpg',
'images/017.jpg',
'images/018.jpg');
licznik = new Array('1','2','3','4');
function zmien(){
img = document.getElementById(licznik[0]);
$('#'+licznik[0]).fadeOut(3000, function(){img.src=images[0];}).fadeIn(3000);
licznik.push(licznik[0]);
licznik.shift();
images.push(images[0]);
images.shift();
};
function start(){
window.setInterval(zmien,5000);
}
start();
W założeniu ma to być slideshow galerii zdjęć. Potrzebuję wywoływać w nieskończoność funkcję zmien() z opóźnieniem 5 sekund. Kod html:
<img id="1"src="images/018.jpg" alt="" /> <img id="2"src="images/017.jpg" alt="" /> <img id="3"src="images/016.jpg" alt="" /> <img id="4"src="images/015.jpg" alt="" />
Jednak wszystko działa, błąd dotyczył czegoś innego. Jednak nie usuwam tego postu, jest on przykładem na wykorzystanie setInterval i jquery do stworzenia prostej galerii zdjęć automatycznie zmieniających się.
Opis działania:
Tworzę dwie tablice, jedną z adresami obrazków, drugą z licznikiem, czyli id elementu img.
W funkcji zmien inicjuję obrazek o id pierwszym z tabeli i używając jquery fadeOut wycieniowuję go. Następnie w funkcji callback fadeOut podmieniam src obrazka na pierwsze z tabeli. Następnie używając metod push i shift przenoszę pierwszy element tablicy na jej koniec. To samo powtarzam dla tablicy licznik.
Tak więc galeria składa się z 4 obrazków wyświetlających się na stronie, w tablicy images jest ich dowolna ilość. Całość zapętlam w nieskończoność przy użyciu Set Interval.
Czas efektu fadeIn fadeOut można dowolnie ustalić, tak samo jak czas przerwy w setInterval.
Pozdrawiam.