我在这里使用图片库,我希望在.gallery-container中显示onClick图像的当前图像显示正常,但问题是当前的图像标题未显示,因为我在jquery中定位了图像源,因此尝试添加标题也无法实现。谁能指出我正确的方向。
$(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 :(得分:2)
这是按预期工作
$(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>
答案 1 :(得分:1)
只需在下面的代码中添加图像点击功能即可。
var _caption = $(this).next("div").html();
$("#expandedImgCaption").html(_caption);
expandedImgCaption
是展开图像标题的ID
代码段:
$(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>
答案 2 :(得分:1)
您可以将其变成jQuery插件并删除ID。这样,您可以在一页上拥有各种画廊。我将定位到img
和.img-caption
选择器并修改其属性。
(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>