1つのページに2つのカルーセルを配置しようとしていますが、それぞれがタブ付きナビゲーションの異なるパネルにありますが、機能していません。jCarouselスクリプトのトラブルシューティングを試みましたが、タブとjCarouselスクリプトが相互作用すると問題が発生すると思います。
とにかく、私のHTMLは多かれ少なかれこのようなものです:
<div id="myTabs">
<ul><!-- Tabs navigation -->
<li><a href="#foo">Foo</a></li>
<li><a href="#bar">Bar</a></li>
</ul>
<div id="foo">
<ul>
<li><!-- Quite complex content inside each LI, but set width of 255px --></li>
<!-- Dynamic number of LI. Minimum of 4 items -->
.
.
.
</ul>
</div>
<div id="bar">
<!-- Another UL, just like #FOO -->
</div>
</div>
だから、私はタブを適用する必要があり#myTabs
、これはコードです:$('#myTabs').tabs()
。UL
また、内部のsに#foo
jCarouselを適用する必要があります。#bar
これは、私が使用している呼び出しです。
$('#myTabs > div > ul').jcarousel({
scroll: 1,
animation: 'slow',
wrap: 'circular'
});
最初のパネルのカルーセルは正しく作成されています。そこではすべてがスムーズに進みます。1つのタブをクリックして非表示のパネルを表示すると、問題が発生します。カルーセルナビゲーションが機能せず、コンソールがエラーをスローします。"jCarousel: No width/height set for items. This will cause an infinite loop. Aborting... "
ただし、プロパティitemFallbackDimension
をに設定しようと255px
するUL
と、非表示のパネルの幅が。になり510px
ます。これは正確に2つの要素の幅ですLI
が、ULには少なくとも4つあります。したがって、ナビゲーションは機能しますが、レイアウトは完全に壊れています。(画像を参照)
これらの問題は、タブの非表示のパネルでのみ発生します。これは、jCarouselが内部的に'幅innerWidth()
を計算するメソッドに依存しているが、コンテナがに設定されている場合に返されるためだと思います。これは、タブがパネルを非表示にするために行うことです。UL
0
display: none
どうすれば修正できますか?