jQueryUIタブにフレックススライダーが必要です。テストサーバーへのリンクは次のとおりです。PHPで動的に作成されるため、タブがいくつあるかわかりません。問題は、フレックススライダートリガーを起動すると、最初のタブの画像のみが認識されることです。他のタブの画像は幅0で表示されます。これは、他のタブが非表示になっていて、flexsliderが画像を計算できないためです。簡単な解決策は、off-left-techniqueを使用することですが、ui-tabs-hideクラスは、私が使用しているjquery-ui-1.9.1では非推奨になっています。1.8にロールバックすると、私も使用しているWordPress3.5.1と競合します。したがって、私が見る唯一の解決策は、タブのアクティブ化ごとにフレックススライダーをトリガーすることです。それが私がすることです:
最初に、ページ上のすべてのライブラリと画像が読み込まれた後、flexsliderをトリガーします。
$(window).load(function() {
$('.flexslider-doors').flexslider({
animation: "slide",
animationLoop: false,
itemWidth: 64,
itemMargin: 30,
controlNav: false
});
});
次に、タブをアクティブにするたびに、flexsliderを再度トリガーします。
jQuery( "#colorTabs" ).tabs({
activate: function( event, ui ) {
jQuery('.flexslider-doors').flexslider({
animation: "slide",
animationLoop: false,
itemWidth: 64,
itemMargin: 30,
controlNav: false
});
}
});
問題は、タブを初めて切り替えたときにのみ機能することです。2回目の画像は表示されません。そして興味深いのは、たとえば別のWebサイトにアクセスしたり、Photoshopなどを開いてから戻ってきた場合、壊れたタブの画像がその場所にあり、スライダーが期待どおりに機能することです。別のタブに切り替えます-画像はありません。別のウェブサイトに行くことでも同じことをしてください-すべてが修正されました。私は立ち往生しています=(