如何在 lightGallery 中动态更改图像 url
How to change image url dynamically in lightGallery
我有一个问题,我的图像在每个 click
不同的 图像
中都没有改变
问题:
改变不同的图像它没有改变
预览 图像 总是显示相同的图像
问题:我想为每个图像更改图像预览
此处演示: https://codepen.io/eabangalore/pen/OrWaRz
$(document).ready(function() {
$('#dynamic li').on('click', function(e) {
var imgUrl = $(this).find('img').attr('data-src');
$('.image-wrapper img').attr('src',imgUrl);
});
$('.image-wrapper').on('click',function(){
var imgUrl = $(this).find('img').attr('src');
$(this).lightGallery({
dynamic: true,
dynamicEl: [{
src: imgUrl,
thumb: imgUrl
}]
});
});
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/lightgallery/1.6.11/css/lightgallery.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/lightgallery/1.6.11/js/lightgallery-all.min.js"></script>
<span>Change images:</span>
<ul id="dynamic">
<li>images 1<img src="" data-src="https://via.placeholder.com/150/0000FF/808080%20?Text=Digital.com%20C/O%20https://placeholder.com/" alt=""></li>
<li>images 2<img src="" data-src="https://via.placeholder.com/150/FF0000/FFFFFF?Text=Down.com%20C/O%20https://placeholder.com/" alt=""></li>
<li>images 3<img src="" data-src="https://via.placeholder.com/150/000000/FFFFFF/?text=IPaddress.net" alt=""></li>
</ul>
<div class="image-wrapper">
<span style="color:#fff;">click to preview image</span>
<img src="https://via.placeholder.com/150/0000FF/808080%20?Text=Digital.com%20C/O%20https://placeholder.com/">
</div>
在文档中,它说您必须 destroy() the current gallery and create it again if you want to refresh the content, reference to the previous indications is here。即使这样做,库仍然存在一些问题,所以我设法让它工作,在销毁前一个库和创建新库之间添加 250ms
的延迟。
示例:
$(document).ready(function()
{
$('#dynamic li').on('click', function(e)
{
var imgUrl = $(this).find('img').attr('data-src');
$('.image-wrapper img').attr('src', imgUrl);
});
$('.image-wrapper').on('click', function()
{
var imgUrl = $(this).find('img').attr('src');
// Destroy previous gallery.
if ($(this).data('lightGallery'))
$(this).data('lightGallery').destroy(true);
// Wait some time before create the new gallery.
var target = $(this);
setTimeout(function()
{
target.lightGallery({
dynamic: true,
dynamicEl: [{src: imgUrl, thumb: imgUrl}]
});
}, 250);
});
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/lightgallery/1.6.11/css/lightgallery.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/lightgallery/1.6.11/js/lightgallery-all.min.js"></script>
<span>Change images:</span>
<ul id="dynamic">
<li>images 1<img src="" data-src="https://via.placeholder.com/150/0000FF/808080%20?Text=Digital.com%20C/O%20https://placeholder.com/" alt=""></li>
<li>images 2<img src="" data-src="https://via.placeholder.com/150/FF0000/FFFFFF?Text=Down.com%20C/O%20https://placeholder.com/" alt=""></li>
<li>images 3<img src="" data-src="https://via.placeholder.com/150/000000/FFFFFF/?text=IPaddress.net" alt=""></li>
</ul>
<div class="image-wrapper">
<span style="color:#fff;">click to preview image</span>
<img src="https://via.placeholder.com/150/0000FF/808080%20?Text=Digital.com%20C/O%20https://placeholder.com/">
</div>
我有一个问题,我的图像在每个 click
不同的 图像
问题:
改变不同的图像它没有改变
预览 图像 总是显示相同的图像
问题:我想为每个图像更改图像预览
此处演示: https://codepen.io/eabangalore/pen/OrWaRz
$(document).ready(function() {
$('#dynamic li').on('click', function(e) {
var imgUrl = $(this).find('img').attr('data-src');
$('.image-wrapper img').attr('src',imgUrl);
});
$('.image-wrapper').on('click',function(){
var imgUrl = $(this).find('img').attr('src');
$(this).lightGallery({
dynamic: true,
dynamicEl: [{
src: imgUrl,
thumb: imgUrl
}]
});
});
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/lightgallery/1.6.11/css/lightgallery.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/lightgallery/1.6.11/js/lightgallery-all.min.js"></script>
<span>Change images:</span>
<ul id="dynamic">
<li>images 1<img src="" data-src="https://via.placeholder.com/150/0000FF/808080%20?Text=Digital.com%20C/O%20https://placeholder.com/" alt=""></li>
<li>images 2<img src="" data-src="https://via.placeholder.com/150/FF0000/FFFFFF?Text=Down.com%20C/O%20https://placeholder.com/" alt=""></li>
<li>images 3<img src="" data-src="https://via.placeholder.com/150/000000/FFFFFF/?text=IPaddress.net" alt=""></li>
</ul>
<div class="image-wrapper">
<span style="color:#fff;">click to preview image</span>
<img src="https://via.placeholder.com/150/0000FF/808080%20?Text=Digital.com%20C/O%20https://placeholder.com/">
</div>
在文档中,它说您必须 destroy() the current gallery and create it again if you want to refresh the content, reference to the previous indications is here。即使这样做,库仍然存在一些问题,所以我设法让它工作,在销毁前一个库和创建新库之间添加 250ms
的延迟。
示例:
$(document).ready(function()
{
$('#dynamic li').on('click', function(e)
{
var imgUrl = $(this).find('img').attr('data-src');
$('.image-wrapper img').attr('src', imgUrl);
});
$('.image-wrapper').on('click', function()
{
var imgUrl = $(this).find('img').attr('src');
// Destroy previous gallery.
if ($(this).data('lightGallery'))
$(this).data('lightGallery').destroy(true);
// Wait some time before create the new gallery.
var target = $(this);
setTimeout(function()
{
target.lightGallery({
dynamic: true,
dynamicEl: [{src: imgUrl, thumb: imgUrl}]
});
}, 250);
});
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/lightgallery/1.6.11/css/lightgallery.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/lightgallery/1.6.11/js/lightgallery-all.min.js"></script>
<span>Change images:</span>
<ul id="dynamic">
<li>images 1<img src="" data-src="https://via.placeholder.com/150/0000FF/808080%20?Text=Digital.com%20C/O%20https://placeholder.com/" alt=""></li>
<li>images 2<img src="" data-src="https://via.placeholder.com/150/FF0000/FFFFFF?Text=Down.com%20C/O%20https://placeholder.com/" alt=""></li>
<li>images 3<img src="" data-src="https://via.placeholder.com/150/000000/FFFFFF/?text=IPaddress.net" alt=""></li>
</ul>
<div class="image-wrapper">
<span style="color:#fff;">click to preview image</span>
<img src="https://via.placeholder.com/150/0000FF/808080%20?Text=Digital.com%20C/O%20https://placeholder.com/">
</div>