Выполнить очередь jQuery случайное количество раз

0

Я использую функцию jQuery queue() для анимации набора изображений один за другим. Я хочу, чтобы очередь выполнялась случайным числом раз каждый раз, когда она выполняется. Вот JS, который устанавливает очередь:

//rotate colors function
function rotateColors() {
    for (var i=0; i<7; i++) {
        isAnimating = true;
        color.delay(50).eq(i).fadeIn(100);
        color.delay(100).eq(i).fadeOut(100);
    }   
}
//rotate colors on button click
button.bind('click', function() {
    color.queue(function(n) {
        rotateColors();
        n();
    });
});

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

Теги:
queue

1 ответ

1

Используйте Math.random() для генерации случайного числа.

function rotateColors() {
    var rnd = Math.floor(Math.random() * 10) + 1; // generate random number between 1 and 10
    for (var i = 0; i < rnd; i++) {
        isAnimating = true;
        color.delay(50).eq(i).fadeIn(100);
        color.delay(100).eq(i).fadeOut(100);
    }   
}
//rotate colors on button click
button.bind('click', function() {
    color.clearQueue().queue(function(n) {
        rotateColors();
        n();
    });
});

Примечание. Я добавил clearQueue() в обработчик click чтобы предотвратить увеличение количества действий в очереди при последовательных кликах.

  • 0
    Спасибо за ответ. Кажется, что это будет работать, однако теперь он вводит изображения случайным образом, а не выполняет их по порядку ...
  • 0
    Это странно. Попробуйте это без clearQueue .
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню