Je travaille sur la galerie d'images ici Je veux que l'image actuelle de l'image onClick soit affichée dans le conteneur de galerie. atteindre. Est-ce que quelqu'un peut-il me montrer la bonne direction.

$(document).ready(function() {
  $('.gallery-column img').on('click', function() {
    var expandImg = document.getElementById("expandedImg");
    expandImg.src = this.src;
    expandImg.parentElement.style.display = "block";
  });
});
* {
  box-sizing: border-box;
}

.gallery-wrap {
  width: 50%;
  height: 1066px;
  margin: 0 auto;
  display: flex;
}

.gallery-row {
  width: 52%;
  max-height: 497px;
}

.gallery-column {
  position: relative;
  padding: 10px;
}

.img-caption {
  position: absolute;
  bottom: 10%;
}

.gallery-column img {
  width: 100%;
  opacity: 0.8;
  cursor: pointer;
}

.gallery-column img:hover {
  opacity: 1;
}

.gallery-container {
  position: relative;
  width: 90%;
  height: 500px;
}

#expandedImg {
  width: 100%;
  height: 100%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="gallery-wrap">

  <div class="gallery-container" style="display: block;">
    <img id="expandedImg" src="https://images.unsplash.com/photo-1542648108-66d2937f4bcf?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=5ebbcae6a8310fd61d8a9fc82b79c792&auto=format&fit=crop&w=500&q=60">
    <div class="img-caption">
      <h3>Still more than 2 Millions+ people using</h3>
    </div>
  </div>

  <div class="gallery-row">
    <div class="gallery-column">
      <img src="https://images.unsplash.com/photo-1542648108-66d2937f4bcf?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=5ebbcae6a8310fd61d8a9fc82b79c792&auto=format&fit=crop&w=500&q=60" alt="">
      <div class="img-caption">
        <h3>Still more than 2 Millions+ people using</h3>
      </div>
    </div>
    <div class="gallery-column">
      <img src="https://images.unsplash.com/photo-1542646822891-0a8451fce513?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=181de57e88385f8f32f48aef4e2831f9&auto=format&fit=crop&w=500&q=60" alt="">
      <div class="img-caption">
        <h3>olor sit amet, consectetur adipiscing elit. Donec</h3>
      </div>
    </div>
    <div class="gallery-column">
      <img src="https://images.unsplash.com/photo-1542632890661-441e6f424098?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=60444a082924abcdc72901abaa800620&auto=format&fit=crop&w=500&q=60" alt="">
      <div class="img-caption">
        <h3>sit amet, consectetur adipiscing elit. Donec</h3>
      </div>
    </div>
    <div class="gallery-column">
      <img src="https://images.unsplash.com/photo-1542635521008-f80f4d69bad4?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=a6e7baa2e8b1e236090d116d35bf0855&auto=format&fit=crop&w=500&q=60" alt="">
      <div class="img-caption">
        <h3>nsectetur adipiscing elit. Donec</h3>
      </div>
    </div>

    <div class="gallery-column">
      <img src="https://images.unsplash.com/photo-1542567055-2c294d7201bd?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=9d4553e0dddb5dfc9e8c2851c24e4610&auto=format&fit=crop&w=500&q=60" alt="">
      <div class="img-caption">
        <h3>consectetur adipiscing elit. Donec</h3>
      </div>
    </div>


  </div>
</div>
0
Husna 20 nov. 2018 à 14:43

3 réponses

Meilleure réponse

Ajoutez simplement ci-dessous le code de votre fonction de clic d'image.

var _caption = $(this).next("div").html();
$("#expandedImgCaption").html(_caption);

expandedImgCaption est l'ID de la légende de l'image développée

Extrait de code :

$(document).ready(function() {
  $('.gallery-column img').on('click', function() {
    var expandImg = document.getElementById("expandedImg");
    expandImg.src = this.src;
    expandImg.parentElement.style.display = "block";
    var _caption = $(this).next("div").html();
    $("#expandedImgCaption").html(_caption);
  });
});
* {
  box-sizing: border-box;
}

.gallery-wrap {
  width: 50%;
  height: 1066px;
  margin: 0 auto;
  display: flex;
}

.gallery-row {
  width: 52%;
  max-height: 497px;
}

.gallery-column {
  position: relative;
  padding: 10px;
}

.img-caption {
  position: absolute;
  bottom: 10%;
}

.gallery-column img {
  width: 100%;
  opacity: 0.8;
  cursor: pointer;
}

.gallery-column img:hover {
  opacity: 1;
}

.gallery-container {
  position: relative;
  width: 90%;
  height: 500px;
}

#expandedImg {
  width: 100%;
  height: 100%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="gallery-wrap">

  <div class="gallery-container" style="display: block;">
    <img id="expandedImg" src="https://images.unsplash.com/photo-1542648108-66d2937f4bcf?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=5ebbcae6a8310fd61d8a9fc82b79c792&auto=format&fit=crop&w=500&q=60">
    <div id="expandedImgCaption" class="img-caption">
      <h3>Still more than 2 Millions+ people using</h3>
    </div>
  </div>

  <div class="gallery-row">
    <div class="gallery-column">
      <img src="https://images.unsplash.com/photo-1542648108-66d2937f4bcf?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=5ebbcae6a8310fd61d8a9fc82b79c792&auto=format&fit=crop&w=500&q=60" alt="">
      <div class="img-caption">
        <h3>Still more than 2 Millions+ people using</h3>
      </div>
    </div>
    <div class="gallery-column">
      <img src="https://images.unsplash.com/photo-1542646822891-0a8451fce513?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=181de57e88385f8f32f48aef4e2831f9&auto=format&fit=crop&w=500&q=60" alt="">
      <div class="img-caption">
        <h3>olor sit amet, consectetur adipiscing elit. Donec</h3>
      </div>
    </div>
    <div class="gallery-column">
      <img src="https://images.unsplash.com/photo-1542632890661-441e6f424098?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=60444a082924abcdc72901abaa800620&auto=format&fit=crop&w=500&q=60" alt="">
      <div class="img-caption">
        <h3>sit amet, consectetur adipiscing elit. Donec</h3>
      </div>
    </div>
    <div class="gallery-column">
      <img src="https://images.unsplash.com/photo-1542635521008-f80f4d69bad4?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=a6e7baa2e8b1e236090d116d35bf0855&auto=format&fit=crop&w=500&q=60" alt="">
      <div class="img-caption">
        <h3>nsectetur adipiscing elit. Donec</h3>
      </div>
    </div>

    <div class="gallery-column">
      <img src="https://images.unsplash.com/photo-1542567055-2c294d7201bd?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=9d4553e0dddb5dfc9e8c2851c24e4610&auto=format&fit=crop&w=500&q=60" alt="">
      <div class="img-caption">
        <h3>consectetur adipiscing elit. Donec</h3>
      </div>
    </div>


  </div>
</div>
1
Aquib Iqbal 20 nov. 2018 à 12:10

Vous pouvez transformer cela en un plugin jQuery et supprimer l'ID. De cette façon, vous pouvez avoir différentes galeries sur une seule page. Je ciblerais les sélecteurs img et .img-caption et modifierais leurs attributs.

(function($) {
  $.fn.child = function(s) {
      return $(this).children(s).first();
  };
  $.fn.gallery = function() {
    var $this = this;
    $this.find('.gallery-column').on('click', function(e) {
      var $container = $this.find('.gallery-container');
      $container.child('.gallery-display').prop('src', $(this).child('img').prop('src'));
      $container.child('.img-caption').html($(this).child('.img-caption').html());
    });
    return $this;
  };
})(jQuery);

$(document).ready(function() {
  $('.gallery-wrap').gallery(); // Convert to gallery.
});
* {
  box-sizing: border-box;
}

.gallery-wrap {
  width: 75%;
  height: 1066px;
  margin: 0 auto;
  display: flex;
}

.gallery-row {
  width: 52%;
  max-height: 497px;
}

.gallery-column {
  position: relative;
  padding: 10px;
}

.img-caption {
  position: absolute;
  margin: 0 2%; /* Added padding to the left and right */
  bottom: 10%;
}

.gallery-column img {
  width: 100%;
  opacity: 0.8;
  cursor: pointer;
}

.gallery-column img:hover {
  opacity: 1;
}

.gallery-container {
  display: block;
  position: relative;
  width: 90%;
  height: 500px;
}

.gallery-display {
  width: 100%;
  height: 100%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="gallery-wrap">
  <div class="gallery-container">
    <img class="gallery-display" src="https://images.unsplash.com/photo-1542648108-66d2937f4bcf?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=5ebbcae6a8310fd61d8a9fc82b79c792&auto=format&fit=crop&w=500&q=60">
    <div class="img-caption">
      <h3>Still more than 2 Millions+ people using</h3>
    </div>
  </div>
  <div class="gallery-row">
    <div class="gallery-column">
      <img src="https://images.unsplash.com/photo-1542648108-66d2937f4bcf?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=5ebbcae6a8310fd61d8a9fc82b79c792&auto=format&fit=crop&w=500&q=60" alt="">
      <div class="img-caption">
        <h3>Still more than 2 Millions+ people using</h3>
      </div>
    </div>
    <div class="gallery-column">
      <img src="https://images.unsplash.com/photo-1542646822891-0a8451fce513?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=181de57e88385f8f32f48aef4e2831f9&auto=format&fit=crop&w=500&q=60" alt="">
      <div class="img-caption">
        <h3>olor sit amet, consectetur adipiscing elit. Donec</h3>
      </div>
    </div>
    <div class="gallery-column">
      <img src="https://images.unsplash.com/photo-1542632890661-441e6f424098?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=60444a082924abcdc72901abaa800620&auto=format&fit=crop&w=500&q=60" alt="">
      <div class="img-caption">
        <h3>sit amet, consectetur adipiscing elit. Donec</h3>
      </div>
    </div>
    <div class="gallery-column">
      <img src="https://images.unsplash.com/photo-1542635521008-f80f4d69bad4?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=a6e7baa2e8b1e236090d116d35bf0855&auto=format&fit=crop&w=500&q=60" alt="">
      <div class="img-caption">
        <h3>nsectetur adipiscing elit. Donec</h3>
      </div>
    </div>
    <div class="gallery-column">
      <img src="https://images.unsplash.com/photo-1542567055-2c294d7201bd?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=9d4553e0dddb5dfc9e8c2851c24e4610&auto=format&fit=crop&w=500&q=60" alt="">
      <div class="img-caption">
        <h3>consectetur adipiscing elit. Donec</h3>
      </div>
    </div>
  </div>
</div>
1
Mr. Polywhirl 20 nov. 2018 à 12:47

Celui-ci fonctionne comme prévu

$(document).ready(function() {
  $('.gallery-column').on('click', function() {
    var expandImg = document.getElementById("hoc");
    expandImg.replaceChild(this, expandImg.childNodes[0])
  });
});
* {
  box-sizing: border-box;
}

.gallery-wrap {
  width: 50%;
  height: 1066px;
  margin: 0 auto;
  display: flex;
}

.gallery-row {
  width: 52%;
  max-height: 497px;
}

.gallery-column {
  position: relative;
  padding: 10px;
}

.img-caption {
  position: absolute;
  bottom: 10%;
}

.gallery-column img {
  width: 100%;
  opacity: 0.8;
  cursor: pointer;
}

.gallery-column img:hover {
  opacity: 1;
}

.gallery-container {
  position: relative;
  width: 90%;
  height: 500px;
}

#expandedImg {
  width: 100%;
  height: 100%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="gallery-wrap">

  <div class="gallery-container" id="hoc" style="display: block;">
    <img id="expandedImg" src="https://images.unsplash.com/photo-1542648108-66d2937f4bcf?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=5ebbcae6a8310fd61d8a9fc82b79c792&auto=format&fit=crop&w=500&q=60">
    <div class="img-caption">
      <h3>Still more than 2 Millions+ people using</h3>
    </div>
  </div>

  <div class="gallery-row">
    <div class="gallery-column">
      <img src="https://images.unsplash.com/photo-1542648108-66d2937f4bcf?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=5ebbcae6a8310fd61d8a9fc82b79c792&auto=format&fit=crop&w=500&q=60" alt="">
      <div class="img-caption">
        <h3>Still more than 2 Millions+ people using</h3>
      </div>
    </div>
    <div class="gallery-column">
      <img src="https://images.unsplash.com/photo-1542646822891-0a8451fce513?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=181de57e88385f8f32f48aef4e2831f9&auto=format&fit=crop&w=500&q=60" alt="">
      <div class="img-caption">
        <h3>olor sit amet, consectetur adipiscing elit. Donec</h3>
      </div>
    </div>
    <div class="gallery-column">
      <img src="https://images.unsplash.com/photo-1542632890661-441e6f424098?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=60444a082924abcdc72901abaa800620&auto=format&fit=crop&w=500&q=60" alt="">
      <div class="img-caption">
        <h3>sit amet, consectetur adipiscing elit. Donec</h3>
      </div>
    </div>
    <div class="gallery-column">
      <img src="https://images.unsplash.com/photo-1542635521008-f80f4d69bad4?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=a6e7baa2e8b1e236090d116d35bf0855&auto=format&fit=crop&w=500&q=60" alt="">
      <div class="img-caption">
        <h3>nsectetur adipiscing elit. Donec</h3>
      </div>
    </div>

    <div class="gallery-column">
      <img src="https://images.unsplash.com/photo-1542567055-2c294d7201bd?ixlib=rb-0.3.5&ixid=eyJhcHBfaWQiOjEyMDd9&s=9d4553e0dddb5dfc9e8c2851c24e4610&auto=format&fit=crop&w=500&q=60" alt="">
      <div class="img-caption">
        <h3>consectetur adipiscing elit. Donec</h3>
      </div>
    </div>


  </div>
</div>
2
Harish Soni 20 nov. 2018 à 11:57