在移动设备上关闭 Fancybox 3

Closing Fancybox 3 on a mobile device

在桌面上使用 fancybox,在内容外单击时关闭。在移动设备上使用它,只有当内容向上或向下滑动时它才会关闭(它不会对点击内容外部做出反应)。

是否可以(以及如何)在移动设备上通过单击内容外部来关闭 fancybox?

这个例子试一试:

$('[data-fancybox]').fancybox({
  clickContent : function( current, event ) {
    return current.type === 'image' ? 'zoom' : 'close';
  }
});

和这个 link 试试看: https://codepen.io/anon/pen/WEKmoB

fancyBox 针对移动设备有不同的 "click event",您可以使用 "mobile" 选项自定义它们,例如:

mobile : {
    clickContent : "close",
    clickSlide : "close"
}

这是我使用 Fancybox 3.5.7 修改移动部分原始源代码的移动部分的解决方案:

mobile: {
                preventCaptionOverlap: !1,
                idleTime: !1,
                clickContent: function (t, e) {
                    return "image" === t.type && "close";
                },
                clickSlide: function (t, e) {
                    return "image" === t.type && "close";
                },
            

有人问上面的延迟。延迟发生在点击以了解是否会有双击。需要时间来查看是否再次点击,如果没有,则图像关闭。因此,如果您(如我的示例所示)删除双击功能(dblclickContent 和 dblclickSlide),这将消除延迟问题。