Я делаю тестовую страницу с кнопками, которые выполняют разные скрипты. Я хочу изменить цвет фона каждую секунду в течение 5 секунд, всего 5 цветов. Я читал и смотрел видео на setInterval
и setTimeout
, и я просто не понимаю.Задержки Javascript
Что я хочу:
x
wait 1sec
y
wait 1sec
z
wait 1 sec
etc...
Я хотел бы сделать это все в одной функции, но я отказался от что из-за, казалось бы необходимости ссылаться на функцию в setTimeout(function, 500)
Так что я создал новая функция для каждого изменения цвета, как вы можете видеть, а затем создала disco()
, который мог бы вызвать каждое изменение фона.
Бит путать, если честно, код должен прояснить, что я пробовал. Достаточно сказать, что это не работает, вот где я сдался.
Буду очень признателен за разъяснение, как это сделать. Благодаря!
function disco() {
setTimeout(aquaman, 500);
setTimeout(pinkman, 500);
setTimeout(blueman, 500);
setTimeout(redman, 500);
setTimeout(brownman, 500);
}
function aquaman() {
document.body.style.backgroundColor = "aqua";
}
function brownman() {
document.body.style.backgroundColor = "brown";
}
function redman() {
document.body.style.backgroundColor = "red";
}
function pinkman() {
document.body.style.backgroundColor = "pink";
}
function blueman() {
document.body.style.backgroundColor = "blue";
}
Насколько хорошо вы знаете массивы? – Kriggs
'setTimeout' не приостанавливает сценарий. Он планирует запуск кода позже. Это означает, что все ваши обратные вызовы 'setTimeout' планируется запустить одновременно. –
массивы .. Я знаю, что они собой представляют - набор данных, я действительно не понимаю, как это относится к этому, но я вижу, что в приведенном ниже ответе есть массив, расположенный в этом примере. мне потребуется время, чтобы сломать его. То, что вы говорите, что все они готовы к выполнению в одно и то же время, действительно имеет смысл. Я снова попытался использовать точный код, используя 500, 1000, 1500, 2000 и 2500, а не 500, и он отлично работал! Прогресс, большое спасибо. – m1a1t