1

Jquery サイクル スライドショーを使用していて、最後のスライドで停止したいのですが、再開、次、または前のアクションで自動停止がリセットされるようです。

たとえば、次のスライドショーがあるとします。

<div id="slideshow">
<div id="slide_0">
    <img src="0.jpg">
    <div class="caption">lorem ipsum</div>
</div>
<div id="slide_1">
    <img src="1.jpg">
    <div class="caption">lorem ipsum</div>
</div>
<div id="slide_2">
    <img src="2.jpg">
    <div class="caption">lorem ipsum</div>
</div>
<div id="slide_3">
    <img src="3.jpg">
    <div class="caption">lorem ipsum</div>
</div>
</div><!--#slideshow-->

<div id="navigation">
    <a id="next">NEXT</a>
    <a id="prev">PREV</a>
</div><!--#navigation-->

<script type="text/javascript">
$('#slideshow').cycle({
    fx: 'fade', 
    speed: 1000,
    timeout: 7000,
    autostop: true,
    next: '#next',
    prev: '#prev'
});
</script>

スライドショーの再生中に「#next」を 2 回押すと、実際には #slide_3 ではなく #slide_1 でスライドショーが停止します。一時停止して再開すると、カウンターもリセットされるようです。autostopCount を使用してみましたが、同じボートに乗っているようです。

私の JavaScript は最適ではありませんが、OnAfter コールバックを使用してスライド番号をチェックする方法を考えていましたが、サイクル オブジェクトから情報を取得する方法がわかりません。またはその変数が何であるか。考え?

ありがとう!

4

1 に答える 1

1

これを試して:

<script type="text/javascript">
var slider = $('#slideshow').cycle({
    fx: 'fade', 
    speed: 1000,
    timeout: 7000,
    after: function(curElement, nextElement, options, forwardFlag) {
       if (options.currSlide == 3) 
          setTimeout(function(){slider.cycle('stop'); }, 1000);
    },
    next: '#next',
    prev: '#prev'
});
</script>
于 2011-04-13T15:53:22.660 に答える