Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CSS][Java][JavaScript]Przyciski do szablonu galerii javascript
Forum PHP.pl > Forum > Przedszkole
Myszowaty23
Witam! Potrzebuję pomocy z dodaniem przycisków NEXT PREV do szablonu galerii. Galeria jest warta uwagi, gdyż nie wymaga tworzenia miniaturek jednak przy dużej ilości zdjęć trzeba zdjęcie na stronie odnaleźć, kliknąć i wrócić do podglądu co jest kłopotliwe. Rozwiązaniem mają być wspomniane przyciski przełączające zdjęcia.

  1. <!DOCTYPE HTML>
  2. <title>Prosta galeria w JavaScript</title>
  3. <link rel="stylesheet" type="text/css" href="style.css">
  4. <meta charset="utf-8">
  5. </head>
  6.  
  7.  
  8. <p><img id="duze_zdjecie" src="obr1.jpg" alt="Duze zdjecie"></p>
  9.  
  10. <ul id="miniaturka">
  11. <li><a href="obr1.jpg" title="Obraz 1"><img src="obr1.jpg"></a></li>
  12. <li><a href="obr2.jpg" title="Obraz 2"><img src="obr2.jpg"></a></li>
  13. <li><a href="obr3.jpg" title="Obraz 3"><img src="obr3.jpg"></a></li>
  14. <li><a href="obr4.jpg" title="Obraz 4"><img src="obr4.jpg"></a></li>
  15. <li><a href="obr5.jpg" title="Obraz 5"><img src="obr5.jpg"></a></li>
  16. </ul>
  17.  
  18. var duze_zdjecie = document.getElementById('duze_zdjecie');
  19.  
  20. var miniaturka = document.getElementById('miniaturka');
  21.  
  22. miniaturka.onclick = function(e) {
  23. e = e || window.event;
  24. var target = e.target || e.srcElement;
  25.  
  26. while(target != this) {
  27.  
  28. if (target.nodeName == 'A') {
  29. PokażMiniaturki(target.href, target.title);
  30. return false;
  31. }
  32.  
  33. target = target.parentNode;
  34. }
  35. }
  36.  
  37. function PokażMiniaturki(href, title) {
  38. duze_zdjecie.src = href;
  39. duze_zdjecie.alt = title;
  40. }
  41.  
  42. var imgs = miniaturka.getElementsByTagName('img');
  43.  
  44. for(var i=0; i<imgs.length; i++) {
  45. var url = imgs[i].parentNode.href;
  46. var img = document.createElement('img');
  47. img.src = url;
  48. }
  49. </script>
  50.  
  51. </body>
  52. </html>

Szablon galerii jest tu: http://tmall.com.pl/prosta-galeria-w-javascript/
szczemp
Dodaj gdzieś przyciski nawigacyjne
  1. <span id="prev">prev</span> <span id="next">next</span>

i w oncicku na dany przycisk (np prev) w javascripcie odczytat jakie zdjęcie akurat się wyświetla np po
  1. duze_zdjecie.src

Potem tego samego poszukaj w miniaturkach np coś w stylu
  1. imgs[i].parentNode.href == duze_zdjecie.src

I na podstawie tego będziesz wiedział jaki jest poprzednie zdjęcie i go ładować do dużego. Trzeba jeszcze sprawdzić czy nie jest ono pierwsze i wtedy ładować ostatnie.
Myszowaty23
Nie idzie mi. Za mało rozumiem kod JS, który sam wrzuciłem.
szczemp
W sumie to ja też nie jestem pro, ale coś dopisałem i działa.
Sprawdź
https://jsfiddle.net/7wbvd7r2/

Nie wiem do czego w Twoim kodzie jest ta pętla:
  1. for(var i=0; i<imgs.length; i++) {
  2. var url = imgs[i].parentNode.href;
  3. var img = document.createElement('img');
  4. img.src = url;
  5. }
więc u siebie zakomentowałem linię
  1. //img.src = url;
Jakby coś nie działało to ją odkomentuj.
Myszowaty23
Jesteś Wielki. Bardzo Ci dziękuję. Wszystko działa.
Ja programowania się nieco uczyłem ale nie powiem, że nauczyłem. 10 lat temu to PHP dobrze mi w szkole szło ale potem na studiach miałem tylko język C# i do niego się nie przyłożyłem. Teraz czasami dla zabawy coś pokombinuję. Ostatnio całkiem ładny skrypt w VBA napisałem na potrzeby pracy. Z tą galerią właśnie poległem nie rozumiejąc kodu, który zapożyczyłem. Jeszcze raz wielkie dzięki.
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.