2017-02-07 4 views
1

Я пытаюсь создать лайтбокс для своей веб-страницы. Сейчас я следующий w3schools пример лайтбокса: http://www.w3schools.com/howto/howto_js_lightbox.aspКак применить одну и ту же функцию к нескольким идентификаторам?

Если это поможет, то веб-страницы, я тока работает над здесь: http://students.washington.edu/cdm206k/tinfo230/assign5/multiplayer/multiWeapons.html

Я могу создать несколько лайтбоксов с помощью S.Serp ! Однако теперь мне нужна помощь, показывающая подпись для каждого изображения для всех лайтбоксов. Я попытался создать уникальный уникальный идентификатор заголовка, но он удаляет только заголовок для каждого изображения из первого лайтбокса и позволяет второму лайтбоксу иметь титры.

Sub машины: [IMG 1] [IMG 2] [IMG 3] [IMG 4] [IMG 5]

автоматов: [IMG 1] [IMG 2] [IMG 3] [IMG 4] [img 5] < - Я хочу сделать еще один лайтбоксы для этого.

...... и, возможно, еще 3 подраздела.

Я создал копию первого лайтбокса, но кажется, что это помеха для первого лайтбокса и второго лайтбокса. Моя проблема в том, что всякий раз, когда я проверяю страницу, она говорит мне, что у меня есть несколько идентификаторов.

Первый для myModal. Я пробовал использовать другое имя для идентификатора, но он по-прежнему не применяет ту же функцию ко второму идентификатору. То же самое происходит и с титром.

Надеюсь, это не смущает. Любые рекомендации или помощь приветствуются. Спасибо. HTML:

 <h1> Black Ops 3 III - Weapons </h1> 

     <h2> Primary </h2> 
     <h3>Submachines: </h3> 

     <section class="row"> 
      <section class="column"> 
      <img src="../multiplayer/weapons/primary/kuda.jpg" style="width:100%" onclick="openModal('myModal');currentSlide(1)" class="hover-shadow cursor" alt="Primary: Kuda"> 
      </section> 
      <section class="column"> 
      <img src="../multiplayer/weapons/primary/weevil.jpg" style="width:100%" onclick="openModal('myModal');currentSlide(2)" class="hover-shadow cursor" alt="Primary: Weevil"> 
      </section> 
      <section class="column"> 
      <img src="../multiplayer/weapons/primary/vesper.jpg" style="width:100%" onclick="openModal('myModal');currentSlide(3)" class="hover-shadow cursor" alt="Primary: Vesper"> 
      </section> 
      <section class="column"> 
      <img src="../multiplayer/weapons/primary/pharo.jpg" style="width:100%" onclick="openModal('myModal');currentSlide(4)" class="hover-shadow cursor" alt="Primary: Pharo"> 
      </section> 
      <section class="column"> 
      <img src="../multiplayer/weapons/primary/razorback.jpg" style="width:100%" onclick="openModal('myModal');currentSlide(5)" class="hover-shadow cursor" alt="Primary: Razorback" > 
      </section> 
     </section> 

     <section id="myModal" class="modal"> 
      <span class="close cursor" onclick="closeModal('myModal')">&times;</span> 
      <section class="modal-content"> 

      <section class="mySlides"> 
       <section class="numbertext">1/5</section> 
       <img src="../multiplayer/weapons/primary/kuda.jpg" style="width:100%" alt="Primary: Kuda" > 
      </section> 

      <section class="mySlides"> 
       <section class="numbertext">2/5</section> 
       <img src="../multiplayer/weapons/primary/weevil.jpg" style="width:100%" alt="Primary: Weevil" > 
      </section> 

      <section class="mySlides"> 
       <section class="numbertext">3/5</section> 
       <img src="../multiplayer/weapons/primary/vesper.jpg" style="width:100%" alt="Primary: Vesper" > 
      </section> 

      <section class="mySlides"> 
       <section class="numbertext">4/5</section> 
       <img src="../multiplayer/weapons/primary/pharo.jpg" style="width:100%" alt="Primary: Pharo" > 
      </section> 

      <section class="mySlides"> 
       <section class="numbertext">5/5</section> 
       <img src="../multiplayer/weapons/primary/razorback.jpg" style="width:100%" alt="Primary: Razorback" > 
      </section> 

      <a class="prev" onclick="plusSlides(-1)">&#10094;</a> 
      <a class="next" onclick="plusSlides(1)">&#10095;</a> 

      <section class="caption-container"> 
       <p id="caption"></p> 
      </section> 


      <section class="column"> 
       <img class="demo cursor" src="../multiplayer/weapons/primary/kuda.jpg" style="width:100%" alt="Primary: Kuda" onclick="currentSlide(1)" > 
      </section> 
      <section class="column"> 
       <img class="demo cursor" src="../multiplayer/weapons/primary/weevil.jpg" style="width:100%" alt="Primary: Weevil" onclick="currentSlide(2)" > 
      </section> 
      <section class="column"> 
       <img class="demo cursor" src="../multiplayer/weapons/primary/vesper.jpg" style="width:100%" alt="Primary: Vesper" onclick="currentSlide(3)" > 
      </section> 
      <section class="column"> 
       <img class="demo cursor" src="../multiplayer/weapons/primary/pharo.jpg" style="width:100%" alt="Primary: Pharo" onclick="currentSlide(4)" > 
      </section> 
      <section class="column"> 
       <img class="demo cursor" src="../multiplayer/weapons/primary/razorback.jpg" style="width:100%" alt="Primary: Razorback" onclick="currentSlide(5)" > 
      </section> 
      </section> 
     </section> 
     <hr /> ----------------------------------------------- <hr /> 
     <h3>Assault Rifles: </h3> 

     <section class="row"> 
      <section class="column"> 
      <img src="../multiplayer/weapons/primary/kn44.jpg" style="width:100%" onclick="openModal('myModal1');currentSlide(1)" class="hover-shadow cursor" alt="Primary: KN-44"> 
      </section> 
      <section class="column"> 
      <img src="../multiplayer/weapons/primary/xr2.jpg" style="width:100%" onclick="openModal('myModal1');currentSlide(2)" class="hover-shadow cursor" alt="Primary: XR-2"> 
      </section> 
      <section class="column"> 
      <img src="../multiplayer/weapons/primary/hvk30.jpg" style="width:100%" onclick="openModal('myModal1');currentSlide(3)" class="hover-shadow cursor" alt="Primary: HVK-30"> 
      </section> 
      <section class="column"> 
      <img src="../multiplayer/weapons/primary/icr1.jpg" style="width:100%" onclick="openModal('myModal1');currentSlide(4)" class="hover-shadow cursor" alt="Primary: ICR-1"> 
      </section> 
      <section class="column"> 
      <img src="../multiplayer/weapons/primary/manowar.jpg" style="width:100%" onclick="openModal('myModal1');currentSlide(5)" class="hover-shadow cursor" alt="Primary: Man-O-War" > 
      </section> 
      <p></p> 
      <section class="column"> 
      <img src="../multiplayer/weapons/primary/sheiva.jpg" style="width:100%" onclick="openModal('myModal1');currentSlide(6)" class="hover-shadow cursor" alt="Primary: Sheiva" > 
      </section> 
      <section class="column"> 
      <img src="../multiplayer/weapons/primary/m8a7.jpg" style="width:100%" onclick="openModal('myModal1');currentSlide(7)" class="hover-shadow cursor" alt="Primary: M8A7" > 
      </section> 
     </section> 

     <section id="myModal1" class="modal"> 
      <span class="close cursor" onclick="closeModal('myModal1')">&times;</span> 
      <section class="modal-content"> 

      <section class="mySlides"> 
       <section class="numbertext">1/7</section> 
       <img src="../multiplayer/weapons/primary/kn44.jpg" style="width:100%" alt="Primary: KN-44" > 
      </section> 

      <section class="mySlides"> 
       <section class="numbertext">2/7</section> 
       <img src="../multiplayer/weapons/primary/xr2.jpg" style="width:100%" alt="Primary: XR-2" > 
      </section> 

      <section class="mySlides"> 
       <section class="numbertext">3/7</section> 
       <img src="../multiplayer/weapons/primary/hvk30.jpg" style="width:100%" alt="Primary: HVK-30" > 
      </section> 

      <section class="mySlides"> 
       <section class="numbertext">4/7</section> 
       <img src="../multiplayer/weapons/primary/icr1.jpg" style="width:100%" alt="Primary: ICR-1" > 
      </section> 

      <section class="mySlides"> 
       <section class="numbertext">5/7</section> 
       <img src="../multiplayer/weapons/primary/manowar.jpg" style="width:100%" alt="Primary: Man-O-War" > 
      </section> 

      <section class="mySlides"> 
       <section class="numbertext">6/7</section> 
       <img src="../multiplayer/weapons/primary/sheiva.jpg" style="width:100%" alt="Primary: Sheiva" > 
      </section> 

      <section class="mySlides"> 
       <section class="numbertext">7/7</section> 
       <img src="../multiplayer/weapons/primary/m8a7.jpg" style="width:100%" alt="Primary: M8A7" > 
      </section> 

      <a class="prev" onclick="plusSlides(-1)">&#10094;</a> 
      <a class="next" onclick="plusSlides(1)">&#10095;</a> 

      <section class="caption-container"> 
       <p id="caption"></p> 
      </section> 


      <section class="column"> 
       <img class="demo cursor" src="../multiplayer/weapons/primary/kn44.jpg" style="width:100%" alt="Primary: KN-44" onclick="currentSlide(1)" > 
      </section> 
      <section class="column"> 
       <img class="demo cursor" src="../multiplayer/weapons/primary/xr2.jpg" style="width:100%" alt="Primary: XR-2" onclick="currentSlide(2)" > 
      </section> 
      <section class="column"> 
       <img class="demo cursor" src="../multiplayer/weapons/primary/hvk30.jpg" style="width:100%" alt="Primary: HVK-30" onclick="currentSlide(3)" > 
      </section> 
      <section class="column"> 
       <img class="demo cursor" src="../multiplayer/weapons/primary/icr1.jpg" style="width:100%" alt="Primary: ICR-1" onclick="currentSlide(4)" > 
      </section> 
      <section class="column"> 
       <img class="demo cursor" src="../multiplayer/weapons/primary/manowar.jpg" style="width:100%" alt="Primary: Man-O-War" onclick="currentSlide(5)" > 
      </section> 
      <section class="column"> 
       <img class="demo cursor" src="../multiplayer/weapons/primary/sheiva.jpg" style="width:100%" alt="Primary: Sheiva" onclick="currentSlide(6)" > 
      </section> 
      <section class="column"> 
       <img class="demo cursor" src="../multiplayer/weapons/primary/m8a7.jpg" style="width:100%" alt="Primary: M8A7" onclick="currentSlide(7)" > 
      </section> 
      </section> 
     </section> 

Javascript:

<script> 
    var modalSec; 

    function openModal(id) { 
     modalSec = document.getElementById('id'); 
     modalSec.style.display = "block"; 
    } 
    function closeModal(id) { 
    modalSec.style.display = "none"; 
    } 

    var slideIndex = 1; 

    function plusSlides(n) { 
     showSlides(slideIndex += n); 
    } 

    function currentSlide(n) { 
     showSlides(slideIndex = n); 
    } 

    function showSlides(n) { 
     var i; 
     var slides = modalSec.getElementsByClassName("mySlides"); 
     var dots = document.getElementsByClassName("demo"); 
     var captionText = document.getElementById("caption"); 
     if (n > slides.length) {slideIndex = 1} 
     if (n < 1) {slideIndex = slides.length} 
     for (i = 0; i < slides.length; i++) { 
      slides[i].style.display = "none"; 
     } 
     for (i = 0; i < dots.length; i++) { 
      dots[i].className = dots[i].className.replace(" active", ""); 
     } 
     slides[slideIndex-1].style.display = "block"; 
     dots[slideIndex-1].className += " active"; 
     captionText.innerHTML = dots[slideIndex-1].alt; 
     } 
    </script> 

CSS:

* { 
     box-sizing: border-box; 
    } 

    .row > .column { 
     padding: 0 8px; 
    } 

    .row:after { 
     content: ""; 
     display: table; 
     clear: both; 
    } 

    .column { 
     float: left; 
     width: 20%; 
    } 

    /* The Modal (background) */ 
    .modal { 
     display: none; 
     position: fixed; 
     z-index: 1; 
     padding-top: 100px; 
     left: 0; 
     top: 0; 
     width: 100%; 
     height: 100%; 
     overflow: auto; 
     background-color: black; 
    } 

    /* Modal Content */ 
    .modal-content { 
     position: relative; 
     background-color: #fefefe; 
     margin: auto; 
     padding: 0; 
     width: 90%; 
     max-width: 1200px; 
    } 

    /* The Close Button */ 
    .close { 
     color: white; 
     position: absolute; 
     top: 10px; 
     right: 25px; 
     font-size: 35px; 
     font-weight: bold; 
    } 

    .close:hover, 
    .close:focus { 
     color: #999; 
     text-decoration: none; 
     cursor: pointer; 
    } 

     .mySlides { 
     display: none; 
    } 

    .cursor { 
     cursor: pointer 
    } 

    /* Next & previous buttons */ 
    .prev, 
    .next { 
     cursor: pointer; 
     position: absolute; 
     top: 50%; 
     width: auto; 
     padding: 16px; 
     margin-top: -50px; 
     color: white; 
     font-weight: bold; 
     font-size: 20px; 
     transition: 0.6s ease; 
     border-radius: 0 3px 3px 0; 
     user-select: none; 
     -webkit-user-select: none; 
    } 

    /* Position the "next button" to the right */ 
    .next { 
     right: 0; 
     border-radius: 3px 0 0 3px; 
    } 

    /* On hover, add a black background color with a little bit see-through */ 
    .prev:hover, 
    .next:hover { 
     background-color: rgba(0, 0, 0, 0.8); 
    } 

    /* Number text (1/3 etc) */ 
    .numbertext { 
     color: #f2f2f2; 
     font-size: 12px; 
     padding: 8px 12px; 
     position: absolute; 
     top: 0; 
    } 

    img { 
     margin-bottom: -4px; 
    } 

    .caption-container { 
     text-align: center; 
     background-color: black; 
     padding: 2px 16px; 
     color: white; 
    } 

    .demo { 
     opacity: 0.6; 
    } 

    .active, 
    .demo:hover { 
     opacity: 1; 
    } 

    img.hover-shadow { 
     transition: 0.3s 
    } 

    .hover-shadow:hover { 
     box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0,  0.19) 
    } 
+0

где находится ваша вторая секция лайтбоксов (Assault Rifles)? –

+0

Я взял его, потому что он не работал должным образом. Я могу попробовать добавить его обратно, если это поможет? –

+0

Я отправил полный рабочий ответ, пожалуйста, проверьте и примите его, если его ок –

ответ

1

Если у вас есть не одно модальные разделы, вам нужно передать id модальных divs в функции javascript.образец вы упоминаете в W3School будет следующим:

Изменения:

»для первой секции ('myModal'):

<img ... onclick="openModal('myModal'); currentSlide(1)"> 
... 
<div id="myModal" class="modal"> 
    <span class="close cursor" onclick="closeModal('myModal')">&times;</span> 
... 

» для второй секции (» myModal2'):

<img ... onclick="openModal('myModal2'); currentSlide(1)"> 
... 
<div id="myModal2" class="modal"> 
    <span class="close cursor" onclick="closeModal('myModal2')">&times;</span> 
... 

»на Javascript изменения:

var modalDiv; //new variable to store current modal div 

function openModal(id) { 
    modalDiv = document.getElementById(id); //keep it in our var 
    modalDiv.style.display = "block"; 
} 

function closeModal(id) { 
    modalDiv.style.display = "none"; //use modalDiv var here! 
} 

var slideIndex = 1; 
//showSlides(slideIndex); //remove this line, its an error!! 

... 

function showSlides(n) { 
    var i; 
    var slides = modalDiv.getElementsByClassName("mySlides"); //use modalDiv var here! 
    var dots = modalDiv.getElementsByClassName("demo"); //modified to get proper demo images 
    var captionText = modalDiv.getElementsByClassName("caption-container")[0].children[0]; //modified to get proper caption 

... 

Полный код будет следующим сниппет (см в [Полная страница] зрения):

var modalDiv; 
 

 
    function openModal(id) { 
 
     modalDiv = document.getElementById(id); 
 
     modalDiv.style.display = "block"; 
 
    } 
 

 
    function closeModal(id) { 
 
     modalDiv.style.display = "none"; 
 
    } 
 

 
    var slideIndex = 1; 
 
    //showSlides(slideIndex); 
 

 
    function plusSlides(n) { 
 
     showSlides(slideIndex += n); 
 
    } 
 

 
    function currentSlide(n) { 
 
     showSlides(slideIndex = n); 
 
    } 
 

 
    function showSlides(n) { 
 
     var i; 
 
     var slides = modalDiv.getElementsByClassName("mySlides"); 
 
     var dots = modalDiv.getElementsByClassName("demo"); 
 
     var captionText = modalDiv.getElementsByClassName("caption-container")[0].children[0]; 
 
     if (n > slides.length) { slideIndex = 1 } 
 
     if (n < 1) { slideIndex = slides.length } 
 
     for (i = 0; i < slides.length; i++) { 
 
     slides[i].style.display = "none"; 
 
     } 
 
     for (i = 0; i < dots.length; i++) { 
 
     dots[i].className = dots[i].className.replace(" active", ""); 
 
     } 
 
     slides[slideIndex - 1].style.display = "block"; 
 
     dots[slideIndex - 1].className += " active"; 
 
     captionText.innerHTML = dots[slideIndex - 1].alt; 
 
    }
body { 
 
    font-family: Verdana, sans-serif; 
 
    margin: 0; 
 
    } 
 

 
    * { 
 
    box-sizing: border-box; 
 
    } 
 

 
    .row > .column { 
 
    padding: 0 8px; 
 
    } 
 

 
    .row:after { 
 
    content: ""; 
 
    display: table; 
 
    clear: both; 
 
    } 
 

 
    .column { 
 
    float: left; 
 
    width: 25%; 
 
    } 
 

 
    /* The Modal (background) */ 
 
    .modal { 
 
    display: none; 
 
    position: fixed; 
 
    z-index: 1; 
 
    padding-top: 100px; 
 
    left: 0; 
 
    top: 0; 
 
    width: 100%; 
 
    height: 100%; 
 
    overflow: auto; 
 
    background-color: black; 
 
    } 
 

 
    /* Modal Content */ 
 
    .modal-content { 
 
    position: relative; 
 
    background-color: #fefefe; 
 
    margin: auto; 
 
    padding: 0; 
 
    width: 90%; 
 
    max-width: 1200px; 
 
    } 
 

 
    /* The Close Button */ 
 
    .close { 
 
    color: white; 
 
    position: absolute; 
 
    top: 10px; 
 
    right: 25px; 
 
    font-size: 35px; 
 
    font-weight: bold; 
 
    } 
 

 
    .close:hover, 
 
    .close:focus { 
 
    color: #999; 
 
    text-decoration: none; 
 
    cursor: pointer; 
 
    } 
 

 
    .mySlides { 
 
    display: none; 
 
    } 
 

 
    .cursor { 
 
    cursor: pointer; 
 
    } 
 

 
    /* Next & previous buttons */ 
 
    .prev, 
 
    .next { 
 
    cursor: pointer; 
 
    position: absolute; 
 
    top: 50%; 
 
    width: auto; 
 
    padding: 16px; 
 
    margin-top: -50px; 
 
    color: white; 
 
    font-weight: bold; 
 
    font-size: 20px; 
 
    transition: 0.6s ease; 
 
    border-radius: 0 3px 3px 0; 
 
    user-select: none; 
 
    -webkit-user-select: none; 
 
    } 
 

 
    /* Position the "next button" to the right */ 
 
    .next { 
 
    right: 0; 
 
    border-radius: 3px 0 0 3px; 
 
    } 
 

 
    /* On hover, add a black background color with a little bit see-through */ 
 
    .prev:hover, 
 
    .next:hover { 
 
     background-color: rgba(0, 0, 0, 0.8); 
 
    } 
 

 
    /* Number text (1/3 etc) */ 
 
    .numbertext { 
 
    color: #f2f2f2; 
 
    font-size: 12px; 
 
    padding: 8px 12px; 
 
    position: absolute; 
 
    top: 0; 
 
    } 
 

 
    img { 
 
    margin-bottom: -4px; 
 
    } 
 

 
    .caption-container { 
 
    text-align: center; 
 
    background-color: black; 
 
    padding: 2px 16px; 
 
    color: white; 
 
    } 
 

 
    .demo { 
 
    opacity: 0.6; 
 
    } 
 

 
    .active, 
 
    .demo:hover { 
 
     opacity: 1; 
 
    } 
 

 
    img.hover-shadow { 
 
    transition: 0.3s; 
 
    } 
 

 
    .hover-shadow:hover { 
 
    box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); 
 
    }
<h2 style="text-align:center">Lightbox</h2> 
 

 
    <div class="row"> 
 
    <div class="column"> 
 
     <img src="http://www.w3schools.com/howto/img_nature.jpg" style="width:100%" onclick="openModal('myModal'); currentSlide(1)" class="hover-shadow cursor"> 
 
    </div> 
 
    <div class="column"> 
 
     <img src="http://www.w3schools.com/howto/img_fjords.jpg" style="width:100%" onclick="openModal('myModal'); currentSlide(2)" class="hover-shadow cursor"> 
 
    </div> 
 
    <div class="column"> 
 
     <img src="http://www.w3schools.com/howto/img_mountains.jpg" style="width:100%" onclick="openModal('myModal'); currentSlide(3)" class="hover-shadow cursor"> 
 
    </div> 
 
    <div class="column"> 
 
     <img src="http://www.w3schools.com/howto/img_lights.jpg" style="width:100%" onclick="openModal('myModal'); currentSlide(4)" class="hover-shadow cursor"> 
 
    </div> 
 
    </div> 
 

 
    <div id="myModal" class="modal"> 
 
    <span class="close cursor" onclick="closeModal('myModal')">&times;</span> 
 
    <div class="modal-content"> 
 

 
     <div class="mySlides"> 
 
     <div class="numbertext">1/4</div> 
 
     <img src="http://www.w3schools.com/howto/img_nature_wide.jpg" style="width:100%"> 
 
     </div> 
 

 
     <div class="mySlides"> 
 
     <div class="numbertext">2/4</div> 
 
     <img src="http://www.w3schools.com/howto/img_fjords_wide.jpg" style="width:100%"> 
 
     </div> 
 

 
     <div class="mySlides"> 
 
     <div class="numbertext">3/4</div> 
 
     <img src="http://www.w3schools.com/howto/img_mountains_wide.jpg" style="width:100%"> 
 
     </div> 
 

 
     <div class="mySlides"> 
 
     <div class="numbertext">4/4</div> 
 
     <img src="http://www.w3schools.com/howto/img_lights_wide.jpg" style="width:100%"> 
 
     </div> 
 

 
     <a class="prev" onclick="plusSlides(-1)">&#10094;</a> 
 
     <a class="next" onclick="plusSlides(1)">&#10095;</a> 
 

 
     <div class="caption-container"> 
 
     <p id="caption"></p> 
 
     </div> 
 

 

 
     <div class="column"> 
 
     <img class="demo cursor" src="http://www.w3schools.com/howto/img_nature_wide.jpg" style="width:100%" onclick="currentSlide(1)" alt="Nature and sunrise2"> 
 
     </div> 
 
     <div class="column"> 
 
     <img class="demo cursor" src="http://www.w3schools.com/howto/img_fjords_wide.jpg" style="width:100%" onclick="currentSlide(2)" alt="Trolltunga, Norway"> 
 
     </div> 
 
     <div class="column"> 
 
     <img class="demo cursor" src="http://www.w3schools.com/howto/img_mountains_wide.jpg" style="width:100%" onclick="currentSlide(3)" alt="Mountains and fjords"> 
 
     </div> 
 
     <div class="column"> 
 
     <img class="demo cursor" src="http://www.w3schools.com/howto/img_lights_wide.jpg" style="width:100%" onclick="currentSlide(4)" alt="Northern Lights"> 
 
     </div> 
 
    </div> 
 
    </div> 
 

 

 

 
    <hr /> ----------------------------------------------- <hr /> 
 

 

 

 
    <div class="row"> 
 
    <div class="column"> 
 
     <img src="http://www.w3schools.com/howto/img_nature.jpg" style="width:100%" onclick="openModal('myModal2'); currentSlide(1)" class="hover-shadow cursor"> 
 
    </div> 
 
    <div class="column"> 
 
     <img src="http://www.w3schools.com/howto/img_fjords.jpg" style="width:100%" onclick="openModal('myModal2'); currentSlide(2)" class="hover-shadow cursor"> 
 
    </div> 
 
    <div class="column"> 
 
     <img src="http://www.w3schools.com/howto/img_mountains.jpg" style="width:100%" onclick="openModal('myModal2'); currentSlide(3)" class="hover-shadow cursor"> 
 
    </div> 
 
    </div> 
 

 

 
    <div id="myModal2" class="modal"> 
 
    <span class="close cursor" onclick="closeModal('myModal2')">&times;</span> 
 
    <div class="modal-content"> 
 

 
     <div class="mySlides"> 
 
     <div class="numbertext">1/3</div> 
 
     <img src="http://www.w3schools.com/howto/img_nature_wide.jpg" style="width:100%"> 
 
     </div> 
 

 
     <div class="mySlides"> 
 
     <div class="numbertext">2/3</div> 
 
     <img src="http://www.w3schools.com/howto/img_fjords_wide.jpg" style="width:100%"> 
 
     </div> 
 

 
     <div class="mySlides"> 
 
     <div class="numbertext">3/3</div> 
 
     <img src="http://www.w3schools.com/howto/img_mountains_wide.jpg" style="width:100%"> 
 
     </div> 
 

 
     <a class="prev" onclick="plusSlides(-1)">&#10094;</a> 
 
     <a class="next" onclick="plusSlides(1)">&#10095;</a> 
 

 
     <div class="caption-container"> 
 
     <p id="caption"></p> 
 
     </div> 
 

 

 
     <div class="column"> 
 
     <img class="demo cursor" src="http://www.w3schools.com/howto/img_nature_wide.jpg" style="width:100%" onclick="currentSlide(1)" alt="Nature and sunrise2"> 
 
     </div> 
 
     <div class="column"> 
 
     <img class="demo cursor" src="http://www.w3schools.com/howto/img_fjords_wide.jpg" style="width:100%" onclick="currentSlide(2)" alt="Trolltunga, Norway2"> 
 
     </div> 
 
     <div class="column"> 
 
     <img class="demo cursor" src="http://www.w3schools.com/howto/img_mountains_wide.jpg" style="width:100%" onclick="currentSlide(3)" alt="Mountains and fjords2"> 
 
     </div> 
 

 
    </div> 
 
    </div>

+0

Я проверил ваш онлайн-сайт, есть некоторые ошибки: есть один дополнительный '' непосредственно перед тегом '

0

Используйте модальный класс применять JavaScript для нескольких элементов идентификатор для одного элемента, который является уникальным

+0

Я пробовал делать это для модального, но он испортил первый лайтбокс. Он не показывал снимки всякий раз, когда нажимается фотография. –

+0

Он использовал разные идентификаторы –

+0

попытайтесь передать этот параметр в действие, и он никогда не испортит – kumarsher45

0
function openModal() { 
    var a = document.querySelectorAll('.modal'); 
    var i = 0; 
    while (i<a.length){ 
     a[i].style.display = "block"; 
     i++; 
    } 
} 
function closeModal() { 
    var a = document.querySelectorAll('.modal'); 
    var i = 0; 
    while (i<a.length){ 
     a[i].style.display = "none"; 
     i++; 
    } 
} 

Используйте это вместо этого.

+0

Я только что заменил тот, который у меня есть? и мне еще нужно создавать разные идентификаторы для myModal? –

+0

Не нужно использовать идентификатор. querySelectorAll (.modal) выбирает все элементы с классом modal и возвращает массив объектов –

0

Вы могли бы сократить на разметки и кода и сделать его более легко расширяемым в будущем, используя event delegation и один модальный элемент вместо жесткого кодирования события для каждый элемент.

Много стройнее HTML:

<div id="modal"> 
<img class="modal-image"> 
<div class="modal-button modal-close">&times;</div> 
<div class="modal-button modal-prev">&#10094;</div> 
<div class="modal-button modal-next">&#10095;</div> 
<div class="modal-counter"></div> 
</div> 

<h3>Submachines:</h3> 
<div class="weapons"> 
    <img src="https://dummyimage.com/200x100/000000/fff.png&text=Kuda" alt="Primary: Kuda"> 
    <img src="https://dummyimage.com/200x100/000000/fff.png&text=Weevil" alt="Primary: Weevil"> 
    <img src="https://dummyimage.com/200x100/000000/fff.png&text=Vesper" alt="Primary: Vesper"> 
    <img src="https://dummyimage.com/200x100/000000/fff.png&text=Pharo" alt="Primary: Pharo"> 
    <img src="https://dummyimage.com/200x100/000000/fff.png&text=Razorback" alt="Primary: Razorback" > 
</div> 

<h3>Assault Rifles:</h3> 
<div class="weapons"> 
    <img src="https://dummyimage.com/200x100/000000/fff.png&text=KN-44" alt="Primary: KN-44"> 
    <img src="https://dummyimage.com/200x100/000000/fff.png&text=XR-2" alt="Primary: XR-2"> 
    <img src="https://dummyimage.com/200x100/000000/fff.png&text=HVK-30" alt="Primary: HVK-30"> 
    <img src="https://dummyimage.com/200x100/000000/fff.png&text=ICR-1" alt="Primary: ICR-1"> 
    <img src="https://dummyimage.com/200x100/000000/fff.png&text=Man-O-War" alt="Primary: Man-O-War" > 
    <img src="https://dummyimage.com/200x100/000000/fff.png&text=Sheiva" alt="Primary: Sheiva" > 
    <img src="https://dummyimage.com/200x100/000000/fff.png&text=M8A7" alt="Primary: M8A7" > 
</div> 

JS:

"use strict"; 

var modal = document.getElementById('modal'), 
    modalImage = document.querySelector('.modal-image'), 
    modalCounter = document.querySelector('.modal-counter'); 

document.querySelectorAll('.weapons').forEach(function (weaponCollection) { 

    // this uses the spread operator (...) to convert the nodeList into 
    // a real array. Most recent versions of modern browsers support this 
    // (IE11 doesn't but it is not a recent browser, Edge does). You can 
    // convert a nodeList in an ES5 friendly way if you need to... 
    var weapons = [...weaponCollection.querySelectorAll('img')], 
    totalWeapons = weapons.length; 

    weaponCollection.addEventListener('click', function (evt) { 
    var target = evt.target, 
     weaponNumber = weapons.indexOf(target) + 1; 
    // if the item that was clicked was one of the image tags 
    if (target.tagName === 'IMG') { 
     modalImage.src = target.src; 
     modalCounter.textContent = weaponNumber + '/' + totalWeapons; 
     modal.classList.add('show'); 
    } 
    }, false); 
}); 

function closeModal() { 
    modal.classList.remove('show'); 
} 

document.querySelector('.modal-close').addEventListener('click', closeModal, false); 

JSFiddle example

я не реализовал следующие и ПРЕД кнопки, потому что это поздно, и я устал. Я просто хотел показать, как делегирование событий может сделать такую ​​вещь гораздо менее многословной. Реализация предыдущей и следующей кнопок, вероятно, потребует некоторого рефакторинга, я могу обновить пример позже. Я также упомянул, что если вы не против использования jQuery, я уверен, что есть много готовых плагинов, которые сделают для вас такую ​​вещь.

Смежные вопросы