私は 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 を強制的に初期化する方法を知っている人はいますか?
ありがとう、スティーブ