Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [css] lub [js]galeria
Forum PHP.pl > Forum > Przedszkole
peter13135
Witam.
Chciałbym zrobić galerię w CSS, podobną do tej która jest na allegro, czyli jedno większe okienko w którym jest fotka, a na dole miniaturki, po kliknięciu w miniaturkę zmienia sie to "większe okienko" na fotke w która sie kliknęło .
Mam nadzieje że jakoś mnie zrozumiecie, jak powiedziałem wolałbym żeby to było w css bo ten język jest dla mnie bardziej czytelny niż js.

Patrzyłem w kod źródłowy na allegro ale jest on dla mnie nie czytelny, proszę o pomoc
Pozdrawiam
erix
W samym CSS tego nie osiągniesz. Podobny temat: Temat: JavaScript_galeria_zdjec_jak_na_allegro
peter13135
poszukałem troche na necie i coś znalazłem, i mam coś takiego

click

niby działa jak należy, ale czy da sie to wrzucić jakiejś ramki??


edit:// poszukałem na necie i znalazłem na innej stronie prosty skryptcik (js) wygląda w miarę przejrzyście ale ja i tak mam coś źle
link tutaj
click

jak widać po kliknęciu na minuaturkę, miniaturka sie nei zmienia, jaka jest przyczyna?

nikt nie pomoże ?
ziqzaq
Wywala ci skrypt przez ten kod:
  1. <?php
  2. var pictures_big = window.opener.pictures_big;
  3. ?>

który ma za zadanie pobrać listę obrazków (tablicę). Nie pobiera tej listy a więc nie ma jak zadziałać.
A więc tworzymy tablicę z obrazkami (to jak sobie stworzysz, lub skąd pobierzesz te obrazki to już od ciebie zależy)
  1. <?php
  2. //var pictures_big = window.opener.pictures_big;
  3. var pictures_big = Array('http://photos04.otomoto.pl/photos/original/M1/12/70/M1127027_1.jpg','http://photos04.otomoto.pl/photos/original/M1/12/70/M1127027_2.jpg');
  4. ?>

zmieniamy indeksy w wywołaniu funkcji (indeksy zaczynają sie od zera!)
  1. <?php
  2. <ul>
  3. <li><a href="java script:loadBigPicture(0);"><img src="http://photos04.otomoto.pl/photos/original/M1/12/70/M1127027_1.jpg" alt=" " /></a></li>
  4. <li><a href="java script:loadBigPicture(1);"><img src="http://photos04.otomoto.pl/photos/original/M1/12/70/M1127027_2.jpg" alt=" " /></a></li>
  5. </ul>
  6. ?>

i voila, działa. winksmiley.jpg
peter13135
podziękował ;]

edit:// skrypt jak najbardziej działa, ale czy można tak zrobić by js ładował sobie pliki z folderu do tablicy?? w php to nie stanowi problemu, natomiast js jest dla mnie obce
ziqzaq
Więc jaki problem w php zapodać te pliki do tablicy w js?
  1. <head>
  2. <script ...>
  3. var pictures_big = Array(
  4. <?php
  5. $i = 0;
  6. foreach($moje_pliki as $plik){
  7.     echo ($i>0 ? ',' : '').'''.$plik.''';
  8.     $i++;
  9. }
  10. ?>
  11. );
  12. </script>
  13. </head>

Można tą tablicę tworzyć po załadowaniu listy obrazków na stronę - tzn. pobrać przez js z listy obrazków ich ścieżki i zapodać do tablicy "pictures_big". Tutaj świetnie sprawdzają się frameworki bo jeśli te obrazki miałyby klasę np. "galeryjka" to za pomocą np. jQuery pobierasz te obrazki tak: $('.galeryjka'), i masz już obiekt jQuery z wszystkimi obrazkami.
Osobiście poleciłbym ci coś takiego. Tworzysz tylko odpowiednią (uwaga na id, i klasy) listę obrazków (miniaturek), resztą zajmuje się plugin jquery. Do działania wymagana jest biblioteka jQuery i ten plugin który ci podałem (zauważ na końcu js/jquery.gallery.js masz wywoływanie tej galerii, możesz to usunąć i sam wywołać galerię lub zostawić jako "autowywoływanie").
Ogólnie o użytkowanie tej galerii w jquery chyba będzie dla ciebie łatwiejsze - musisz sobie tylko dostosować html i css.
peter13135
może i łatwiejsze, ale większa satysfakcja jest wtedy gdy zrobie coś sam, lub przynajmniej rozumiem mechanizm działania

edit://

http://laczek.xaa.pl/galeria/

takie coś mi wyszło, mi się podoba, jeszcze może połączę to z php żeby samo z folderu ładowało i bedzie gitara
erix
Cytat
jeszcze może połączę to z php żeby samo z folderu ładowało i bedzie gitara

http://phpedia.pl/wiki/RecursiveDirectoryIterator
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.