私は flexslider と fancybox を何度も使用してきましたが、どちらも優れたプラグインです。これとは別に、これらは両方とも私がやっているサイトではうまく機能しますが、これから説明する問題は、flexslider ギャラリーが fancybox div 内に配置されている場合に発生します。これはレスポンシブ Web サイトであるため、静的な幅はなく、すべての幅はパーセンテージ ベースです。
最初は、すべてが機能しているように見えます。fancybox と flexslider ディスプレイを必要に応じて読み込みます。その幅は fancybox コンテナーの 50% です。しかしdisplay: none;、呼び出されるまでdivを非表示にする必要があるfancybox divに追加すると、fancyboxがflexsliderのすべての画像をロードすると、flexslider divの幅は正しいですが、小さくなります。ページが読み込まれるとflexsliderが読み込まれるため、その幅がわからないと思います。これが、 が設定されている場合に発生しない理由display: none;です。
現在、2 つのプラグインをロードするための私の JavaScript は次のようになっています。
// =FANCYBOX
$(".fancybox").fancybox({
    padding : 2,
    nextEffect: 'fade',
    prevEffect: 'fade',
    title: false,
});
// =FLEXSLIDER 
$(function(){
    if($(".flexslider").length > 0) {
        $(".flexslider").addClass("loading");
        // Can also be used with $(document).ready()
        $(window).load(function() {
            $('.flexslider').flexslider({
                animation: "slide",
                directionNav: false,
                slideshowSpeed: 5000,
                animationSpeed: 360,
                easing: "easeInQuad",
                useCSS: false,
                start: function(slider){
                    $('.flexslider').removeClass('loading');
                }
            });
        });
    }
});
fancybox が表示された後に flexslider を強制的に初期化する方法を知っている人はいますか?
ありがとう、スティーブ