随机执行jQuery队列次数

时间:2013-09-26 18:37:08

标签: javascript jquery queue

我正在使用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();
    });
});

我怎么能这样做,每次激活这个队列时,它会执行一次随机的次数?

1 个答案:

答案 0 :(得分: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处理程序,以防止在连续点击时在队列上构建大量操作。