Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z Lightboxem i galerią - nie powiększa miniatur
Forum PHP.pl > Forum > Po stronie przeglądarki
maciek92
Witam!
Otóż mam taki problem. Zainstalowałem na stronie galerie w php i lightboxa2. Skrypt galerii ładnie tworzy miniaturki, wydawało by się, że wszystko jest ok. Jednak po kliknięciu na miniaturkę nic się nie dzieje. Zdjęcie sie nie powieksza, lightbox sie nie uruchamia. Dopiero gdy wcisne CTRL + F5 i strona od nowa sie zaladuje, wtedy wszystko działa jak należy. I skrypt galerii, i lightbox.

Co jest przyczyna tego ze po pierwszym zaladowaniu strony nie moge zdjecia powiekszyc, natomiast moge to zrobic dopiero po kliknieciu CTRL + F5?

Dodam, że dzieje się tak w przeglądarkach IE oraz Mozilli. Natomiast w Operze działa ładnie.

Pozdrawiam! Maciej
korek_a
a kod ? bez kodu ci będzie trudno pomóc
maciek92
To zamiescilem w head:

CODE
<link rel="stylesheet" href="style.css" type="text/css" />

<link rel="Stylesheet" type="text/css" href="galeria_zdjec.css" />
<script type="text/javascript" src="galeria.js"></script>


<link rel="stylesheet" href="lightbox.css" type="text/css" media="screen" />
<script src="prototype.js" type="text/javascript"></script>
<script src="scriptaculous.js?load=effects,builder" type="text/javascript"></script>
<script src="lightbox.js" type="text/javascript"></script>



To jest kod który wywołuje galerie na stronie:

CODE
<?php

/*
Ustalamy w jakim katalogu znajduja sie zdjecia oraz
ile wierszy i kolumn bedzie tworzyc galeria jednej strony.
*/
define('KATALOG_ZDJEC','./zdjecia/kronika/');
define('WIERSZY',10);
define('KOLUMN',2);

/*
Przeczesujemy wybrana lokalizacje w poszukiwaniu plikow .jpg
i zapujemy ich nazwy w tablicy $album. Wszelkie informacje o
plikach beda teraz odczytywane z tej tablicy dzieki czemu ograniczymy
mielenie dyskiem do minimum smile.gif
*/
$x=0;
foreach (glob(KATALOG_ZDJEC."*.jpg") as $zdjecie) $album[$x++]=$zdjecie;

/* Zliczamy ile fotek lacznie pojawi sie na jednej stronie oraz calkowita ich liczbe */
$na_stronie=WIERSZY*KOLUMN; $razem=count($album);

/*
Dzieki czemu mozemy wyliczyc liczbe stron. Czesc calkowita z dzielenia
liczby fotek przez liczbe zdjec na jednej stronie da laczna liczbe stron.
Jesli zostanie jakas reszta z dzielenia to znaczy ze potrzebujemy jeszcze
jednej strony dla wyswietlenie kilku ostatnich zdjec
*/
$stron=floor($razem/$na_stronie); $stron+=$razem % $na_stronie ? 1:0;

/*
Zmienna $pokaz_strone przechowuje nr. akutalnej strony do wyswietlenia.
Jej wartosc odczytywana jest z adresu strony
Jesli wartosc nie zostala ustalona
przyjmujemy ze wyswietlamy strone 1
*/
$pokaz_strone=$_GET['pokaz_strone']; if (!isset($pokaz_strone)) $pokaz_strone=1;


/*
Bedziemy odczytywac tylko te fragmenty tablicy $album ktore zawieraja
zdjecia wystepujace na danej stronie, dlatego potrzebujemy ustalic
jaki bedzie to obszar
*/
$start=($pokaz_strone-1) * $na_stronie;
$stop=($pokaz_strone==$stron) ? $razem % $na_stronie: $na_stronie; $stop+=$start;

echo "<table style='border: none'><tr>";

/* Z wybranych elementow rusyjemy tabelke */
for ($x=$start;$x<$stop;$x++){

/* Jesli osiagnieto ustalona liczbe kolumn przechodzimy do nastepnego wiersza */
if (!($x % KOLUMN)) echo "</tr><tr>";

/*
Tworzymy obrazek ktory wygenerowany zostanie przez skrypt mini.php na podstawie
przekazanej nazwy pliku
*/
echo "<td><a href=\"".$album[$x]."\" rel=\"lightbox[roadtrip]\"><img src=\"mini1.php?fotka="."{$album[$x]}\"></a>";

/*
Ponizsze linie sprawdzaja czy w katalogu ze zdjeciem istnieje taki sam
plik z roszerzeniem .txt. Jesli tak, wyswietla jego zawartosc pod zdjeciem
*/
list($info)=explode('.',basename($album[$x]));
if(file_exists(KATALOG_ZDJEC.$info.".txt")){
$plik=fopen(KATALOG_ZDJEC.$info.".txt","r");
$opis=fgets($plik);
fclose($plik);
echo "<br>$opis";
}
echo "</td>";
}
echo "</tr><table>";

/* Jesli mamy wiecej niz jedna strone wyswietlimy ich liste */
if ($stron>1){
echo "<br>";
echo "Strona: "; for($x=1;$x<=$stron;$x++) {

/* Bierzaca strone pogrubimy a pozostale beda linkami z odpowiednim adresem */
if ($pokaz_strone==$x){echo "<b> $x </b>";} else {echo "<a href=\"historia.php?pokaz_strone=$x\"> $x </a>";}
}
}

?>



Jeszcze jakiś kod wstawić?


Sama galeria, bez lightboxa działa bardzo dobrze, tylko miniaturki otwierają się w nowym oknie, i nie można ich przewijać. Trzeba zamknąć duże okno, i otworzyć następne zdjęcie.
bobo168
Miałem, kiedys taki sam problem tylko że bodajże thickboxem. Z tego co pamiętam problem leżał w tym że miałem jakiś błąd składni w innym pliku js, zobacz w konsoli błędów w ff albo IE czy CI niczego nie wykrywa. Rozwiązanie było dziwne ale skuteczne po usunięciu błędu wszystko było ok..

Edit: Jeśli to nie pomoże to spróbuj zainstalować właśnie thickboxa, praktycznie to samo a może zadziała smile.gif
maciek92
Noo i musiałem skorzystać z czegoś innego.. Użyłem GrebBoxa. Przynajmniej działa prawidłowo pod większością przeglądarek, i po małych poprawkach wygląda (i działa biggrin.gif) całkiem nieźle smile.gif

Nie wiem jeszcze tylko jak się zabrać do pewnej rzeczy.

Otoż galeria wyświetla na stronie załóżmy 10 miniaturek, natomiast reszte dzieli na podstrony.

Otwierając pierwszą miniaturkę w GreyBoxie, mam możliwość przeglądania po kolei tylko tych 10 zdjęć. Żeby obejrzeć resztę trzeba wyłączyć GB, przejść na drugą podstronę wygenerowaną przez skrypt galerii i od nowa przeglądać kolejne 10 zdjęć....

Jak to ominąć? Chodzi mi o to, żeby wszystkie zdj z danego katalogu móc obejrzeć za jednym razem na podglądzie, a nie przełączać podstron.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.