• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed "Uszczuplenie" kodu JavaScript - Galeria Zdjęć

0 głosów
342 wizyt
pytanie zadane 3 lipca 2019 w JavaScript przez Job102 Bywalec (2,050 p.)
zamknięte 10 lipca 2019 przez Job102

Witam,

Proszę o pomoc w "odchudzeniu" poniższego kodu:

document.addEventListener("DOMContentLoaded", function()
{

//---==LIGHTBOX_GALLERY==---//
	
var gall=["01", "02", "03", "04"];
var pic01=["01_01.jpg", "01_02.jpg", "01_03.jpg", "01_04.jpg"];
var lightbox=document.getElementById("lightbox");
var img=document.getElementById("img1");
var gallery=document.getElementsByClassName("gallery");
var lightbox_content=document.getElementsByClassName("lightbox_content")[0];
var small_pic=["min1", "min2", "min3", "min4"];
var bottom=document.getElementsByClassName("bottom_gallery")[0];


gallery[0].addEventListener("click",function(){
lightbox.style.display="block";
lightbox_content.addEventListener("click",closeBox);
img.innerHTML='<img src="img/gallery/'+gall[0]+'/main/'+pic01[0]+'" alt="" />';
mini(0);
});

gallery[1].addEventListener("click",function(){
lightbox.style.display="block";
lightbox_content.addEventListener("click",closeBox);
img.innerHTML='<img src="img/gallery/'+gall[1]+'/main/'+pic01[0]+'" alt="" />';
mini(1);
});

gallery[2].addEventListener("click",function(){
lightbox.style.display="block";
lightbox_content.addEventListener("click",closeBox);
img.innerHTML='<img src="img/gallery/'+gall[2]+'/main/'+pic01[0]+'" alt="" />';
mini(2);
});

gallery[3].addEventListener("click",function(){
lightbox.style.display="block";
lightbox_content.addEventListener("click",closeBox);
img.innerHTML='<img src="img/gallery/'+gall[3]+'/main/'+pic01[0]+'" alt="" />';
mini(3);
});
	
function mini(i)
{
	bottom.style.display="block";
	bottom.innerHTML='<div class="slide"><img src="img/gallery/'+gall[i]+'/min/'+small_pic[0]+'.jpg"></div><div class="slide"><img src="img/gallery/'+gall[i]+'/min/'+small_pic[1]+'.jpg"></div><div class="slide"><img src="img/gallery/'+gall[i]+'/min/'+small_pic[2]+'.jpg"></div><div class="slide"><img src="img/gallery/'+gall[i]+'/min/'+small_pic[3]+'.jpg"></div>';
	
	var slide=document.getElementsByClassName("slide");
	
	slide[0].addEventListener("click",function(){
		img.innerHTML='<img src="img/gallery/'+gall[i]+'/main/'+pic01[0]+'" alt="" />'
	});
	slide[1].addEventListener("click",function(){
		img.innerHTML='<img src="img/gallery/'+gall[i]+'/main/'+pic01[1]+'" alt="" />'
	});
	slide[2].addEventListener("click",function(){
		img.innerHTML='<img src="img/gallery/'+gall[i]+'/main/'+pic01[2]+'" alt="" />'
	});
	slide[3].addEventListener("click",function(){
		img.innerHTML='<img src="img/gallery/'+gall[i]+'/main/'+pic01[3]+'" alt="" />'
	});
}

function closeBox()
{
	lightbox.style.display="none";
}

})

Wszelkie propozycje mile widziane.

Z góry dziękuję.

Pozdrawiam.

komentarz zamknięcia: Zakończone
komentarz 3 lipca 2019 przez imklau Nałogowiec (42,070 p.)

pętle, pętle i jeszcze raz pętle broken heart

komentarz 3 lipca 2019 przez Job102 Bywalec (2,050 p.)
Doskonale to rozumiem, tylko ja jeszcze jestem "na początku drogi" i szczerze powiem chciałbym zobaczyc to właśnie na tym przykładzie - jak to jest zapisywane.

Spędziłem, sporo czasu żeby to zapętlić, ale gubie się gdzieś w logice tego wszystkiego i doszedłem do wniosku, że pora przeanalizować czyjeś rozwiązania.

Z góry dzięki.

1 odpowiedź

0 głosów
odpowiedź 3 lipca 2019 przez k.wichura Pasjonat (19,870 p.)
wybrane 10 lipca 2019 przez Job102
 
Najlepsza
document.addEventListener("DOMContentLoaded", function() {

  const gall = ["01", "02", "03", "04"];
  const pic01 = ["01_01.jpg", "01_02.jpg", "01_03.jpg", "01_04.jpg"];
  const lightbox = document.getElementById("lightbox");
  const img = document.getElementById("img1");
  const gallery = document.getElementsByClassName("gallery");
  const lightbox_content = document.getElementsByClassName(
    "lightbox_content"
  )[0];
  const small_pic = ["min1", "min2", "min3", "min4"];
  const bottom = document.getElementsByClassName("bottom_gallery")[0];

  gallery.forEach((el, idx) => {
    el.addEventListener("click", function() {
      lightbox.style.display = "block";
      lightbox_content.addEventListener("click", closeBox);
      img.innerHTML =
        '<img src="img/gallery/' +
        gall[idx] +
        "/main/" +
        pic01[idx] +
        '" alt="" />';
      mini(idx);
    });
  });

  function mini(i) {
    bottom.style.display = "block";
    const html = small_pic.map(
      smallPic =>
        `<div class="slide"><img src="img/gallery/${
          gall[i]
        }${smallPic}.jpg"></div>`
    );

    bottom.innerHTML = html.join("");
    const slide = document.getElementsByClassName("slide");

    slide.forEach((s, index) => {
      s.addEventListener("click", function() {
        img.innerHTML =
          '<img src="img/gallery/' +
          gall[i] +
          "/main/" +
          pic01[index] +
          '" alt="" />';
      });
    });
  }

  function closeBox() {
    lightbox.style.display = "none";
  }
});

tak na szybko cos takiego mozna zrobic.

Podobne pytania

0 głosów
0 odpowiedzi 1,583 wizyt
pytanie zadane 24 lipca 2018 w JavaScript przez WrdSaint Nowicjusz (120 p.)
0 głosów
1 odpowiedź 984 wizyt
pytanie zadane 20 października 2016 w JavaScript przez hiper007 Stary wyjadacz (11,270 p.)
0 głosów
0 odpowiedzi 340 wizyt
pytanie zadane 8 marca 2018 w JavaScript przez Tomek Reda Obywatel (1,110 p.)

93,772 zapytań

142,730 odpowiedzi

323,382 komentarzy

63,369 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...