我正在使用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();
});
});
我怎么能这样做,每次激活这个队列时,它会执行一次随机的次数?
答案 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
处理程序,以防止在连续点击时在队列上构建大量操作。