Сценарий:задержка JQuery против SetTimeout для джекпота «Волчок» изображения подкачки
Я хочу создать JQuery управляемого джек-пот «вертушку», который будет быстро последовательность ряда случайных изображений через DIV, прежде чем остановиться на одном, с интервал задержки между каждыми равными, но сменными. Для макетов я просто меняю классы цвета CSS на поле, хотя в финале я буду использовать фоновые изображения.
Я думал, что это будет непросто сделать с петлей. Я уверен, что есть более эффективный способ сделать это, но угадал, что нижеследующее будет работать нормально. Однако я обнаружил, что у меня нет возможности контролировать скорость обмена цветом CSS. Это мгновенно перескакивает через класс цветов и показывает последний. Я бы хотел, чтобы это была задержка.
jQuery delay(), похоже, не работает при соединении с addClass(), хотя он отлично работает с эффектами. Поэтому я попытался использовать window.setTimeout, но, насколько я вижу, в этом контексте ему нужен вызов функции kludgey. Код, как указано ниже, выполняет все вызовы функций после запуска цикла. Это проблема закрытия? Не хотите использовать setInterval, потому что это будут ограниченные итерации.
Спасибо за любой совет!
for (var j= 9; j >= 0; j--) {
$('#box1').attr('class', 'boxes'); // strips all current classes, replaces them with class 'boxes', which has general CSS characteristics
var numRand = Math.floor(Math.random() * 6);
var randomClass = colorArray1[numRand]; // pull random class from an array of six choices
$('#box1').addClass(randomClass);
// Everything above here works fine, would like loop delay here
// Tried using straight-up setTimeout -- doesn't appear to like loops
window.setTimeout(outerFunc, 1000);
};
function outerFunc() {
alert('nobody here but us chickens!');
};
благодарит Брайана, сначала я попробую метод очереди, но попробую рекурсию, если это не сработает. – boomturn