0

プラグイン Fancybox 2.0 ( http://fancyapps.com/fancybox/ ) に問題があるため、今日はトピックを作成します。

実際、現在ファンシーボックスにあるメディアに応じて、さまざまな種類のタイトルを設定したいと考えています。Fancybox に iFrame がある場合、タイトルは「外側」でなければなりません。そうでなければ、それが他のメディアであれば、タイトルは「オーバー」でなければなりません。

$(".fancybox").fancybox({openEffect: 'elastic',closeEffect: 'elastic',beforeShow: function() {
        share_buttons_fancybox = '<div class="center" style="margin-top:10px;"><div class="bouton_social"><div class="fb-like" data-href="' + $(this.element).attr('href') + '" data-width="90" data-layout="button_count" data-show-faces="false" data-send="false"></div></div><div class="bouton_social"><a href="https://twitter.com/share" data-url="' + $(this.element).attr('href') + '" class="twitter-share-button" data-via="playeronetv" data-lang="fr">Tweeter</a></div><div class="bouton_social"><div class="addthis_toolbox addthis_default_style" addthis:url="' + $(this.element).attr('href') + '"><a class="addthis_counter addthis_pill_style"></a></div><script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=xa-52248d25116616ca"></script></div></div>';
        if (this.title) {
            this.title += share_buttons_fancybox;
        } else {
            this.title = share_buttons_fancybox;
        }
    },afterShow: function() {
        twttr.widgets.load();
        FB.XFBML.parse();
        addthis.toolbox();
        addthis.toolbox(".addthis_toolbox");
        addthis.counter(".addthis_counter");
    },helpers: {thumbs: {width: 80,height: 45},title: {type: 'over'}},padding: 0})

何か案は ?iFrame とその他のメディアは、同じ Fancybox ギャラリーにある必要があります。:)

前もって感謝します。私の英語で申し訳ありません(私はフランス語です):)

4

1 に答える 1

0

オプションを使用してすべての要素のtitle位置を設定し、次のようにコールバック内の jQuery のメソッドを使用してiframe要素のみに位置を設定できます。overhelperstitleoutside$.extend()afterLoad

$(".fancybox").fancybox({
    padding: 0,
    openEffect: 'elastic',
    closeEffect: 'elastic',
    helpers: {
        thumbs: {
            width: 80,
            height: 45
        },
        title: {
            type: 'over' // all media
        }
    },
    afterLoad: function () {
        if (this.type == "iframe") {
            $.extend(this, {
                helpers: {
                    title: {
                        type: 'outside' // iframe only
                    },
                    overlay: {
                        locked: false // needed to fix a bug while closing (can be true or false)
                    }
                }
            });
        }
    }
});

fancybox を閉じる際のバグを回避するためoverlay lockedに、メソッド内にオプションを設定していることに注意してください。$.extend()

overlay: {
    locked: false 
}

これがないと、オーバーレイは閉じません (clickただし、閉じるのに 1 秒かかります)

JSFIDDLEを参照してください

于 2013-11-13T02:40:04.677 に答える