Цикл jQuery + минимальное время ожидания - PullRequest
1 голос
/ 15 октября 2011

У меня небольшая проблема с плагином цикла jQuery и его тайм-аутом.

Я использую эффект scrollLeft и хотел бы, чтобы он всегда продолжал прокручиваться (аналогично новостной ленте, если вызнаешь что я имею ввиду).Теперь использование timeout: 0 не будет работать, потому что это вообще отключит автоматическую прокрутку.

Поэтому я подумал об использовании timeout: 10 (чтобы иметь почти незаметный тайм-аут), но это тоже не работает, потому чтонезависимо от того, насколько низко я установил время ожидания, время ожидания всегда составляет около секунды (даже при использовании timeout: 1).

Снова, чтобы сделать его немного более понятным:

Увеличение значенияТайм-аут до timeout: 10000 дает желаемый эффект и приостанавливает скольжение на 10 секунд, но уменьшение его до timeout: 1 выглядит так же, как если бы я использовал timeout: 1000

Я не уверен, где проблема, потому чтоЯ искал вокруг Google минимальное время ожидания , но не смог найти ничего, что говорило бы, что минимальное время ожидания равно 1000

Используемый мной скрипт очень прост, поэтому я думаю, что должен бытьтам нет ошибок, но только для того, чтобы вы тоже могли это проверить, я выкладываю:

    $('#demo').cycle({
        slideExpr: 'p',
        fx: 'scrollLeft',
        next: '.next', 
        speedIn: 5000,
        speedOut: 5000,
        fastOnEvent: 1000,
        containerResize: 0,
        pause: 1,
        timeout: 10
    });

Надеюсь, я смог объяснить свой вопрос достаточно хорошо:)

С уважением!

ps Я не хочу использовать какую-тоиз плагина newsticker, но очень хотел бы создать этот эффект с помощью цикла.

Ответы [ 3 ]

3 голосов
/ 14 декабря 2011

Если вам нужна действительно непрерывная прокрутка, вы можете использовать опции easeIn и easyOut.Попробуйте это:

$('#demo').cycle({
   fx: 'scrollHorz',
   continuous: 1,
   easeIn: 'linear',
   easeOut: 'linear'
});
2 голосов
/ 15 октября 2011

Существует опция для jQuery Cycle, которая называется непрерывная , которая является ближайшей к плагину, которая может прийти к традиционной новостной ленте. Попробуйте следующее:

$('#demo').cycle({ 
    fx: 'scrollLeft', 
    continuous: 1
});

Надеюсь, это поможет!

1 голос
/ 15 февраля 2012

В функции buildOptions () найдите следующий код

var buffer = opts.fx == 'none' ? 0 : opts.fx == 'shuffle' ? 500 : 250;
while((opts.timeout - opts.speed) < buffer) // sanitize timeout
    opts.timeout += opts.speed;*/

и прокомментируйте цикл while

var buffer = opts.fx == 'none' ? 0 : opts.fx == 'shuffle' ? 500 : 250;
/*while((opts.timeout - opts.speed) < buffer) // sanitize timeout
    opts.timeout += opts.speed;*/
...