1

複数のタイムアウトを設定するにはどうすればよいですか?
助けてください...

timeout:'1000, 2000, 3000' これは機能していません。

4

1 に答える 1

2

timeoutプロパティを使用する代わりにtimeoutFn、次のスライドを待機するミリ秒数を返す関数を使用および定義する必要があります。

たとえば、スライドが 3 つしかなく、使用した 3 つのタイムアウト (1000、2000、3000) が必要な場合、最後のタイムアウトの後、最初のタイムアウトを再度使用する必要があると想定します (各画像は画面に表示される時間があります)。その場合、コードは単純に次のようになります。

$('#s1').cycle({
    timeoutFn: function (curr, next, opts, isForward) {
        return (opts.currSlide + 1) * 1000;
    }
});

一方、3 つ以上のスライドを設定する場合は、独自のプロパティ (配列やカウンターなど) を使用し、それらを関数内で使用して、対応するタイムアウトを計算できます。

$('#s1').cycle({
    timeoutFn: function(currElement, nextElement, opts, isForward) {
        opts.myTimeoutCount = (opts.myTimeoutCount + 1) % opts.myTimeouts.length;
        return opts.myTimeouts[opts.myTimeoutCount];
    },
    myTimeouts: [1000, 2000, 3000],
    myTimeoutCount: 0
});

最後に、最後のタイムアウト後に他のスライドを表示したくない場合は、単純にautostop&autostopCountプロパティを使用する必要があります。

$('#s1').cycle({
    autostop: true,
    autostopCount: 3,
    timeoutFn: function (curr, next, opts, isForward) {
        return (opts.currSlide + 1) * 1000;
    }
});
于 2010-04-28T23:17:15.363 に答える