Fancybox iframe内で動的な幅のコンテンツを読み込む必要があります。コンテンツに合わせてiframeのサイズを変更するには、Fancybox呼び出しにコンテンツの幅を渡す必要があります。私は、次を使用してこれを行っていますギャラリー機能を維持しながら.on()内のFancyboxを呼び出す
jQuery('#container').on('click', '.fancybox-iframe', function(e){
e.preventDefault();
var iframeWidth = parseInt(jQuery(this).attr('id'));
jQuery(this).fancybox({
width : iframeWidth,
height : '100%',
autoSize : true,
fixed : true,
type : 'iframe',
loop : false,
padding : 0,
closeBtn : false,
afterLoad : function() {
jQuery('body').css('overflow', 'hidden');
},
afterClose : function() {
jQuery('body').css('overflow', 'auto');
},
helpers : {title: {type: 'outside'}, overlay: {opacity: 0.8, css: {'background-color': '#FFFFFF'}}, thumbs: {width: 50, height: 50}, buttons: {}}
});
});
上記のHTML:まず、私は二回のハイパーリンクをクリックする必要があり、Fancyboxのために毎回:
<a id="<?php echo $content_width; ?>" class="fancybox-iframe fancybox.iframe" rel="gallery" href="<?php the_permalink(); ?>"></a>
<a id="<?php echo $content_width; ?>" class="fancybox-iframe fancybox.iframe" rel="gallery" href="<?php the_permalink(); ?>"></a>
<a id="<?php echo $content_width; ?>" class="fancybox-iframe fancybox.iframe" rel="gallery" href="<?php the_permalink(); ?>"></a>
を上記のコードは二つの問題があります現れる。 2番目の問題は、HREFのrel
属性では機能しないため、コンテンツをFancyboxギャラリーとして表示しないことです。ギャラリーの問題を解決するために、jQuery(this).fancybox({
をjQuery('.fancybox-iframe').fancybox({
に置き換えました。これにより、ギャラリーが機能するようになりました。しかし、Fancyboxはクリックされた最初のリンクの変数をiframeWidth
に変更するだけです。
コンテンツの幅をFancyboxに渡す方法や、ギャラリー機能を維持する方法についてのアイデアはありますか?ところで、私はこれが(別のライトボックス)私はカラーボックスに使用するもので、あなたが何をする必要があるかに表情を与えることがありFancybox 2.0.5
私の更新 – JFK