Вместо использования свойства 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;
}
});