jQuery Cycleを使用した余興があります。.next または .prev div をクリックすると、期待どおりにスライドショーが循環します。私がする必要があるのは、.timeline_pagination の UL を更新し、対応するスライドにクラス「アクティブ」を追加/削除することです。例えば。#tl_2004 スライドがアクティブな場合、#goto2004 li はクラスをアクティブにする必要があります。#goto*** を機能させる必要はありません。それらは純粋に表示参照として存在します。
事前にご協力いただきありがとうございます。
マークアップは次のとおりです。
<!-- FAKE PAGINATION -->
<div class="timeline_pagination">
<ul>
<li class="active" id="goto1994">1994</li>
<li id="goto2000">2000</li>
<li id="goto2004">2004</li>
<li id="goto2007">2007</li>
</ul>
</div>
<!-- END FAKE PAGINATION -->
<div class="timeline_slideshow">
<div class="prev"></div>
<div class="next"></div>
<div class="tl_slideshow">
<div id="tl_1994">
<div class="caption">
<h4>title</h4>
<p>my text</p>
</div>
</div>
<div id="tl_2000">
<div class="caption">
<h4>title</h4>
<p>my text</p>
</div>
</div>
<div id="tl_2004">
<div class="caption">
<h4>title</h4>
<p>my text</p>
</div>
</div>
<div id="tl_2007">
<div class="caption">
<h4>title</h4>
<p>my text</p>
</div>
</div>
</div>
</div>
これがJavaScriptです:
$('.tl_slideshow').cycle({
fx: 'scrollHorz',
next: '.next',
prev: '.prev',
timeout: 0,
speed: 750,
nowrap: 1,
after: onAfter
});
function onAfter(curr, next, opts) {
var index = opts.currSlide;
$('.prev')[index == 0 ? 'fadeOut' : 'fadeIn']();
$('.next')[index == opts.slideCount - 1 ? 'fadeOut' : 'fadeIn']();
}