如何不总是从第一张照片开始?



我得到了 5 个缩略图的图片库预览,但图库有更多的照片。为了避免将所有内容放入我的代码并通过CSS隐藏它们,我正在寻找另一种解决方案。

这是我的HTML代码:

<div id="start_slides2">
<a href="javascript:;"><img src="./thumb1.jpg" alt=""></a>
<a href="javascript:;"><img src="./thumb2.jpg" alt=""></a>
<a href="javascript:;"><img src="./thumb3.jpg" alt=""></a>
<a href="javascript:;"><img src="./thumb4.jpg" alt=""></a>
<a href="javascript:;"><img src="./thumb5.jpg" alt=""></a>
</div>

到目前为止没有问题。我可以使用常用方式或将其放在这样的对象上:

$("#start_slides2 a").on('click', function () {
$.fancybox.open([
{ src: 'photo1.jpg', opts: { caption: 'First caption' } },
{ src: 'photo2.jpg', opts: { caption: 'Second caption' } },
{ src: 'photo3.jpg', opts: { caption: 'Third caption' } },
{ src: 'photo4.jpg', opts: { caption: 'Fourth caption' } },
{ src: 'photo5.jpg', opts: { caption: 'Fifth caption' } },
{ src: 'photo6.jpg', opts: { caption: 'Sixth caption' } },
{ src: 'photo7.jpg', opts: { caption: 'Seventh caption' } },
{ src: 'photo8.jpg', opts: { caption: 'Eigth caption' } }],
{ loop: true }
);
});

问题是它总是从第一项开始,即使用户单击了第三个缩略图,例如

如何显示点击的图像,同时保持最多显示x张照片的机会?

您只需将index作为第 3 个参数传递(请参阅文档 https://fancyapps.com/fancybox/3/docs/#api(,例如:

var $links = $("#start_slides2 a");
$links.on('click', function () {
$.fancybox.open([
{ src: 'photo1.jpg', opts: { caption: 'First caption' } },
{ src: 'photo2.jpg', opts: { caption: 'Second caption' } },
{ src: 'photo3.jpg', opts: { caption: 'Third caption' } },
{ src: 'photo4.jpg', opts: { caption: 'Fourth caption' } },
{ src: 'photo5.jpg', opts: { caption: 'Fifth caption' } },
{ src: 'photo6.jpg', opts: { caption: 'Sixth caption' } },
{ src: 'photo7.jpg', opts: { caption: 'Seventh caption' } },
{ src: 'photo8.jpg', opts: { caption: 'Eigth caption' } }],
{ loop: true }, $links.index(this)
);
});

演示 - https://jsfiddle.net/cfnaw4oL/

最新更新