Za pierwszym wyświetleniem zdjęcia zamiast wyświetlać się normalnie to wyświetlają się jako miniaturki jak na poniższym obrazku
http://imageshack.us/photo/my-images/828/z...11024godzk.png/
Często się zdarza takie coś i tylko pod IE i Firefoxem. Zrobiłem więc mały preloader obrazków. Obrazki znajdują się w takiej strukturze:
|-ParentFolder
----|ChildFolder1
--------|zdj1.jpg
--------|zdj2.jpg
--------|zdj3.jpg
----|ChildFolder2
--------|zdj1.jpg
--------|zdj2.jpg
--------|zdj3.jpg
i tak dalej.
Prelodaer wygląda tak:
function preloadImages() { $galleryFolderPath = 'jakiś katalog'; searchFolderAndFiles($galleryFolderPath); } function searchFolderAndFiles($katalogParent) { // Przeszukiwanie katalogu w poszukiwaniu podkatalogów if ($dirParent) { if (($fileParent == "..") || ($fileParent == ".") || ($fileParent == ".DS_Store") || ($fileParent == "galleryImages")) continue; $katalogChild = $katalogParent . $fileParent . '/'; // Przeszukiwanie po katalogu w poszukiwaniu plików if ($dirChild) { if (($fileChild == "..") || ($fileParent == ".") || ($fileParent == ".DS_Store")) { continue; } echo '<script language="JavaScript" type="application/javascript"> preload("' . $fileName . '","' . $katalogChild . $fileChild . '"); </script>'; } $counter++; } $katalogChild = ''; } } } } }
kod w js (z wykorzystaniem jQuery) dla funkcji preload()
function preload(photoAlt, photoSource)
{
$('<img>').attr('src', photoSource).attr('alt',photoAlt);
}
w skrócie, idę do pierwszego podkatalogu ParentFolder i po kolei odczytuję pliki z nazwy to co ma przed rozszerzeniem i usuwam zdj (zawsze zdjęcie nazywa się zdj + numer . jpg) a następnie ten numer oraz ścieżkę do pliku wysyłam do preload() i tam tworzę <img src=" " alt=" ">
najlepsze jest to, że jak przeładuję stronę to już wszystko się wyświetla ok czy mój preloadnig jest włączony czy nie
Myślałem że załatwi to sprawę a dalej jest jak jest i nie wiem jak rozwiązać tego psikusa a termin goni i klient się wkurza.
Czy ktoś miał już taki problem? jak to rozwiązać?
Oczywiście dostęp do katalogów działa, czy źle napisałem ten fragment w js znaczy funkcję preload()?