0

我正在使用 jQueryqueue()函数一个接一个地为一组图像设置动画。我想要的是队列在每次执行时随机出现次数。这是设置队列的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();
    });
});

我怎样才能使每次激活此队列时都会执行随机次数?

4

1 回答 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处理程序中是为了防止在连续单击时在队列中累积大量操作。

于 2013-09-26T18:42:24.140 回答