Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Js]+[jQuery] przeglądarka zdjęć ( galeria) - jak ją udoskonalić.
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
motodd
Witam. Napisałem sobie taką bardzo prostą przeglądareczke zdjęć. PRzeglądareczke tzn po kliknieciu na miniaturkę otwiera mi się większe zdjęcie , jest prosta nawigacja. Ale mam kilka problemów:
- chciałbym zrobić, aby po kliknięciu "następne" lub "poprzednie" zdjęcia płynnie przechodziły. Tzn ich wielkość zmieniała się płynnie.
Nie wiem wogole jak sie do tego zabrać. Nowe zdjęcie wczytuje pobierając atrybut "alt" z juz istenijącej fotki miniaturki . i ten atrybut wczytuje do diva "fotka_wczytana" poprzez .html() . - ogolnie to chyba zle się za to zabrałem . Dlatego zerknijcie na kod i podpowiedzcie jak to zrobić prawidło. Najlepiej jakby się dalo wczytać nową fotke gdzieś w tle- pobrac jej szerokość, wysokość i zmienić poprzez .animate wielkość diva "fotka_wczytana" a nastepnie wyswietlnić w niej dany img.

tutaj przykład klik

[JAVASCRIPT] pobierz, plaintext
  1. $("#galeria img").click( function(){
  2. var alt = $(this).attr('alt');
  3. $('.aktualne_img').removeClass();
  4. $(this).addClass('aktualne_img');
  5. pokaz_obraz(alt);
  6. });
  7.  
  8. function pokaz_obraz($a) {
  9. var link = $a;
  10. if (!$("#gallery")) {
  11. } else {
  12. $("#gallery").fadeIn(500);
  13. $("#exposeMask").fadeIn(500);
  14. }
  15. $("#fotka_wczytana").hide();
  16. $(".close").hide();
  17. $("#gallery").hide();
  18. var nextSiblings = $('.aktualne_img').next('img');
  19. var prevSiblings = $('.aktualne_img').prev('img');
  20. if (nextSiblings.length > 0) {
  21. $('.next').css("display", "block");
  22. } else {
  23. $('.next').css("display", "none");
  24. }
  25. if (prevSiblings.length > 0) {
  26. $('.prev').css("display", "block");
  27. } else {
  28. $('.prev').css("display", "none");
  29. }
  30. var opis = $(".aktualne_img").attr("longdesc");
  31. var tekst_img = '<img src="' + link + '"/>';
  32. var ekran_h2 = $(window).height() - 50;
  33. $("#fotka_wczytana").html(tekst_img);
  34. $('#fotka_wczytana img').load(function() {
  35. $("#gallery").show();
  36. $("#fotka_wczytana").show();
  37. $(".close").show();
  38. var img_h = $("#fotka_wczytana").height();
  39. var ekran_h = $(window).height();
  40. var ekran_w = $(window).width();
  41. if(ekran_h2 < img_h ){
  42. $("#fotka_wczytana img").css("height", ekran_h2);
  43. }
  44. else{
  45.  
  46. $("#fotka_wczytana img").css("height", img_h);
  47. }
  48.  
  49.  
  50. var img_w = $("#fotka_wczytana").width();
  51.  
  52. var margines = (ekran_w - img_w) / 2;
  53. $("#info").html(opis);
  54. $("#gallery").css("left", margines);
  55.  
  56. });
  57.  
  58.  
  59. $(".next").click(function() {
  60.  
  61. var next_img = $(".aktualne_img").next("img").attr("alt");
  62.  
  63. var next_img_remove = $(".aktualne_img").next("img");
  64.  
  65. $(".aktualne_img").removeClass();
  66.  
  67. $(next_img_remove).addClass("aktualne_img");
  68.  
  69. pokaz_obraz(next_img);
  70.  
  71. });
  72.  
  73.  
  74. $(".prev").click(function() {
  75.  
  76. var prev_img = $(".aktualne_img").prev("img").attr("alt");
  77.  
  78. var prev_img_remove = $(".aktualne_img").prev("img");
  79.  
  80. $(".aktualne_img").removeClass();
  81.  
  82. $(prev_img_remove).addClass("aktualne_img");
  83.  
  84. pokaz_obraz(prev_img);
  85.  
  86. });
  87.  
[JAVASCRIPT] pobierz, plaintext


  1. <div id="gallery" class="simple_overlay" style=" padding-bottom:0px; position: absolute; display: none; z-index: 10007; top: 20px;left:200px; background-image: url(./img/bg_gal.png); background-repeat: repeat;">
  2. <a class="close"></a>
  3. <div id="fotka_wczytana" ></div>
  4. <div id="info">tutaj jakiś opisik fotki</div>
  5. </div>
  6.  
  7. style="position: absolute; top: 0px; left: 0px; width: 100%; height: 100%; display: none; z-index: 10000; background-image: url(./img/bg_gal.png); background-repeat: repeat;"
  8. id="exposeMask">
  9.  
  10. <a class="next">następne</a>
  11. <a class="prev">poprzednie</a>
krowal
Nie chce mi się patrzeć w kod, ale ja bym to zrobił tak: Wczytujesz obrazek przez obiekt Image, ma on event load który uruchamia się gdy obrazek zostanie wczytany. Wtedy pobierasz nowe rozmiary obrazka, za pomocą animate() zmieniasz rozmiary okienka (dostosowując je do nowych rozmiarów pobranych z obiektu Image) i w tym samym czasie wyśrodkowujesz okienko na ekranie. Ostatni krok to podmienienie obrazka w okienku na ten z obiektu Image.
motodd
Dzięki za odpowiedz. Właśnie o to mi chodziło. Zeby tego img umieścić gdzies. ale nie wiedzialem jak to sie nayzwa. Teraz poczytam o obiektach Image. Bo rozumiem, ze to specjalny obiekt ktory przechowuje img, czy po prostu obiekty w js tworzy się dowolnie, i np obiektem moze być tablica. Pewnie napisalem bzdury, ale tak naprawdę jestem początkującym w tej dziedzinie.
Dzięki jeszcze raz za pomoc exclamation.gif Pozdrawiam

i cos znalazłem odnośnie Image
klik

No i paru godzinach kombinacji działa
http://www.motodd.cal.pl/galeria/
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.