JQuery цикл плагин - PullRequest
       10

JQuery цикл плагин

1 голос
/ 22 апреля 2010

как установить несколько тайм-аутов?
Пожалуйста, помогите мне ...

timeout:'1000, 2000, 3000' это не работает.

1 Ответ

2 голосов
/ 29 апреля 2010

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