在 fancybox2 之外单击

Clicking outside of fancybox2

所以我想在不关闭 fancybox 的情况下使用它以外的所有东西。

所以我将 closeclick 设置为 false。 我也让它可以拖动,所以我可以在屏幕上移动它,但是如果我试图点击一个按钮,它不会让我。 我到处都进行了研究,但每个人都只能通过单击而不是在其外部触发事件来关闭它。 我知道它是通过 Iframe 运行 进行的,因此也进行了研究,但仍然没有运气。

如果这不可能,是否有另一种弹出窗口的方法。我希望能够点击 fanxybox 之外的东西。

-一个月后编辑。

一直在研究,还没弄明白。正在从事其他项目,然后又出现了这个项目。 现在我也在尝试弄清楚如何在花式盒中打开花式盒。使第二个可拖动(不是第一个)并能够在花式框内单击。除非 fancybox 不是解决所有这些问题的方法,否则还有其他方法可以做到这一点。

这是我的第一页

 $(".fancybox").fancybox({
                fitToView: false,
                beforeShow: function () {
                    this.width = 1000;
                    this.height = 300;
                }  
            });


     <a class="fancybox fancybox.iframe" href="">
<center>
<img src="images/calendar.png" border="0" style="height: 25px; width: 25px;" /></center>
                                                </a>

这是另一页上花式框内的内容。

 parent.$(".fancybox").fancybox({
                fitToView: false,
                beforeShow: function () {
                    this.width = 500;
                    this.height = 100;
                },
                afterShow: function () {
                $(".fancybox-wrap").draggable();
            }
            });
<a class="fancybox fancybox.iframe" href="">
<img src="images/arrow-right-3.png" border="0" style="height: 25px; width: 25px;" /></a>

但是当我 运行 那个 fancybox 没有出来时,它只是转到下一页。不确定它是关闭第一个打开这个还是只是重定向。

我尝试了 Here 但似乎没有用。 这是困扰我多年的问题,因此我们将不胜感激。

您应该能够将 helpers.overlay 选项设置为 false,这将阻止叠加层显示:

parent.$(".fancybox").fancybox({
    fitToView: false,
    beforeShow: function () {
        this.width = 500;
        this.height = 100;
        // If helpers.overlay = false doesn't work, uncomment below.
        // $('#fancybox-overlay').remove();
    },
    helpers: {
        overlay: false
    },
    afterShow: function () {
        $(".fancybox-wrap").draggable();
    }
});

否则,在 beforeShow 方法中,您可以简单地删除覆盖元素。对话框周围有一个区域不可点击(用于渐变效果),但其他一切都对我有用。

HTH

两步:

1) 将 overlayShow 选项设置为 false

 $(".fancybox").fancybox({
                fitToView: false,
                overlayShow: false,
                beforeShow: function () {
                    this.width = 1000;
                    this.height = 300;
                },
                afterShow: function () {
                    $(".fancybox-wrap").draggable();
                }
            });

2) 将填充设置为 0,您可以通过将 padding: 0 添加到您的 fancybox 容器或将其添加到您的 CSS 文件

来实现
.fancybox-wrap {
    padding: 0 !important;
}