在锚点上禁用/阻止PhotoSwipe启动单击

时间:2019-01-09 20:01:12

标签: javascript closures photoswipe flickity

这是一个Flickity轮播,其中包含在PhotoSwipe中打开的图像。

在Flickity幻灯片中有a个标签可以“起作用”,但是在window.location更改之前,PhotoSwipe模式闪烁(默认HTML单击)。

在运行openPhotoSwipe()之前,我需要进行某种测试,并尝试了以下方法,但它(当然)仅在第二次单击时有效:

$gallery.dataset = [];  
$gallery.dataset.linkClicked = false;

$('.project-archive-link').on('click', function() {
    $gallery.dataset.linkClicked = true;
});
$gallery.on('staticClick.flickity', function(event, pointer, cellElement, cellIndex) {
    if (!cellElement) {
      return;
    }

// Photoswipe functions
var openPhotoSwipe = function() {

...

if ($gallery.dataset.linkClicked === false ) {
    openPhotoSwipe();
}

这是具有基本框架的CodePen

我打赌我的方法是错误的。

1 个答案:

答案 0 :(得分:0)

由flickity的开发者working solution根据this recommendation开发了David DeSandro(未经广泛测试),并由this Flickity issue提出了进一步的建议,将cellIndex替换为jQuery获得的单元格索引。

Flickity事件侦听器绑定到img中的$gallery标签。然后,目标index的{​​{1}}被用作parent数组中的Photoswipe图像。

options