1

標準の Fancybox は、ボディ全体にオーバーレイを配置します。ファンシーボックスのJSまたはCSSに、ページの特定の要素にのみオーバーレイを配置する方法はありますか?

ありがとう。

4

4 に答える 4

3

Fancybox.js要件に応じて次の行を置き換えます

overlay.css('height', $(document).height());

 overlay.css('height', $("yourdiv").height());
 overlay.css('height', $("yourdiv").width());
于 2012-06-15T09:42:29.277 に答える
0

最後に、次のセクションを書き直しました。

a.helpers.overlay = {
    overlay: null,
    update: function () {
        var a, c;
        this.overlay.width(0).height(0);
        e.browser.msie ? (a = Math.max(m.documentElement.scrollWidth, m.body.scrollWidth), c = Math.max(m.documentElement.offsetWidth, m.body.offsetWidth), a = a < c ? l.width() : a) : a = q.width();

        var w = $('#page-introduction').width();
        var h = $('#page-introduction').height();

        this.overlay.width(w).height(h)
        $('#fancybox-overlay').offset($('#page-introduction').offset())
    },
    beforeShow: function (b) {
        this.overlay || (b = e.extend(!0, {
            speedIn: "fast",
            closeClick: !0,
            opacity: 1,
            css: {
                background: "black"
            }
        },
        b), this.overlay = e('<div id="fancybox-overlay"></div>').css(b.css).appendTo("body"), this.update(), b.closeClick && this.overlay.bind("click.fb", a.close), l.bind("resize.fb", e.proxy(this.update, this)), this.overlay.fadeTo(b.speedIn, b.opacity))
    },
    onUpdate: function () {
        this.update()
    },
    afterClose: function (a) {
        this.overlay && this.overlay.fadeOut(a.speedOut || 0, function () {
            e(this).remove()
        });
        this.overlay = null
    }
};

page-introduction はオーバーレイしたい要素であり、この要素のオフセットはオーバーレイをオフセットするために使用されます。

ロバート

于 2012-06-15T14:08:43.463 に答える
0

jquery.fancybox.js でこの行を見つけて、appendTo を選択した div に変更します。その div 内に配置する場合は、.fancybox-overlay の配置を絶対に変更する必要があります。

this.overlay = $('<div class="fancybox-overlay"></div>').appendTo( ".yourdiv" );
于 2013-08-17T19:26:42.730 に答える
0

私はこれを思いつきました:

helpers:  {
            overlay : {
                    css : {
                        'height': $('.fancyboxwrapper').height(),
                        'width': $('.fancyboxwrapper').width(),
                        'top': $('.fancyboxwrapper').offset().top,
                        'left': $('.fancyboxwrapper').offset().left,
                        'overflow': 'hidden'
                    }
                }
           }

これにより、ラッパー div 内のオーバーレイが開き、画像のサイズもラッパーのサイズに調整されました。

于 2012-11-15T11:32:05.853 に答える