我正在寻找一个解决方案,打开PhotoSwipe画廊 img链接。所以有一个带有图库图标的IMG。我想要,如果 用户点击图库打开它。
有人知道我怎么能这样做?
我发现了这一点。但是,这个开放载入画廊。
<script type="text/javascript">
(function(window, PhotoSwipe){
document.addEventListener('DOMContentLoaded', function(){
var
options = {
preventHide: true
},
instance = PhotoSwipe.attach( window.document.querySelectorAll('#Gallery a'), options );
instance.show(0);
}, false);
}(window, window.Code.PhotoSwipe));
</script>
最佳regargs
答案 0 :(得分:1)
我刚刚开始使用photoSwipe,所以我不肯定这会起作用,但在我看来,你只需要在点击事件上调用instance.show(0)
。
假设我在页面上有这个元素:<a id="launch-gallery" href="#">Click to launch gallery</a>
我可以添加这个jQuery点击事件来启动图库:
$('#launch-gallery').click(function(evt){
evt.preventDefault(); // prevent regular click action
instance.show(0); // Make sure 'instance' variable is available to this function
});
如果你不使用jQuery,你可以在原生JavaScript中做同样的事情(但更冗长一点)。
我希望这会有所帮助。
答案 1 :(得分:0)
请注意,我使用php(ajax)来传递图像的位置和大小,因此您仍然需要自己定义json数据。 这就是我用 Jquery :
做到的$('.element').off(); //in case it's a dynamically changing element
$('.element').on("click tap", function () {
var dataForPhpScript = $(this).parents('.gallery').attr("data-attr"); //data for php script
$.getJSON('urlToPHPFunction?dataID=' + dataForPhpScript, function (json) {
openPhotoSwipe(json);
});
});
这是照片打开功能:
function openPhotoSwipe(jsonData) {
var pswpElement = document.querySelectorAll('.pswp')[0];
// define options (if needed)
var options = {
// history & focus options are disabled on CodePen
history: false,
focus: false,
showAnimationDuration: 0,
hideAnimationDuration: 0
};
var gallery = new PhotoSwipe(pswpElement, PhotoSwipeUI_Default, jsonData, options);
gallery.init();
}
请注意,jsonData应该看起来像这样:
[
{
src: 'https://placekitten.com/600/400',
w: 600,
h: 400
},
{
src: 'https://placekitten.com/1200/900',
w: 1200,
h: 900
}
];
我意识到这个问题的答案已经很晚了,但是由于这个问题只是在谷歌搜索完全不同的东西(但与照片相关),我想也许这会有用!