今天在我的网站上安装了 lightGallery,这是代码的一部分:
<div class="portfolio-content">
<ul id="portfolio_filters" class="portfolio-filters">
<li class="active">
<a class="filter btn btn-sm btn-link grph active" data-group="graphics">Banners</a>
</li>
<li>
<a class="filter btn btn-sm btn-link" data-group="logo">Logo</a>
</li>
</ul>
<div id="portfolio_grid" class="portfolio-grid portfolio-masonry masonry-grid-3">
<figure class="gallery-graphics" data-src="images/bnrs/01-bnr.png" data-sub-html="<h4>Banner 1</h4>" data-groups='["graphics"]'>
<a href=""><img class="img-responsive" src="images/bnrs/01-bnr.png"></a>
</figure>
<figure class="gallery-logo" data-src="images/logo/01-logo.png" data-sub-html="<h4>Logo 1</h4>" data-groups='["logo"]'>
<a href=""><img class="img-responsive" src="images/logo/01-logo.png"></a>
</figure>
</div>
</div>
具有 ID #portfolio_grid 的单个主容器有 2 个具有不同选择器的画廊 - 1 个用于横幅图像,2 个用于徽标。我想在点击时看到 2 个不同的画廊,每个画廊显示 1/1 图像而不是 1/2,所以我尝试理解 lightGallery HTML 标记说明并编写了以下代码:
$('#portfolio_grid').lightGallery({
hash: false,
selector: '.gallery-graphics'
});
$('#portfolio_grid').lightGallery({
hash: false,
selector: '.gallery-logo'
});
这通常适用于第一个画廊,但不适用于第二个。我试图<figure>...</figure>用唯一的 id 包装 div,但在我的情况下它破坏了网站。
在此之后,我尝试了另一个与 lightGallery 自己的 destroy() 函数相关的解决方案,并编写了这段代码,该代码仅部分工作一次 - 我在第一个画廊中有 1/1 图像,在第二个画廊中有 1/1 图像。第二次点击图库图片会破坏网站。
var $lg = $('#portfolio_grid');
$lg.lightGallery({
hash: false,
selector: '.gallery-graphics'
});
$lg.on('onCloseAfter.lg', function(event) {
$lg.data('lightGallery').destroy('true');
$lg.lightGallery({
hash: false,
selector: '.gallery-logo'
});
});
如何使 lightgallery 与单个 id 和许多不同的选择器一起工作?请帮忙。