@Tempest99

Как сделать светофор на JS?

есть задача-Создать светофор (красный, желтый,
зелёный). Переключать цвет у светофора
через каждые 2 сек сверху вниз и снизу вверх.
Я понимаю что это реализовывается через setInterval и setTimeout,но пойму как это записать,чтобы работало,весь день просидел,но так и не понял как это реализовать
  • Вопрос задан
  • 7930 просмотров
Решения вопроса 1
Ni55aN
@Ni55aN
Паттерн "Состояние"

Красный:
- Ожидание: 20с
- Переход: Желтый

Желтый:
- Ожидание: 3с
- Переход: если был Красный, переходим на Зеленый, иначе на Красный

Зеленый:
- Ожидание: 30с
- Переход: Желтый

UPDATE:
Пример с использованием четырех состояний: https://codepen.io/Ni55aN/pen/ELGMOy
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@umbrella121
const colorList = [
  {name: 'yellow', interval: 500},
  {name: 'red', interval: 4000},
  {name: 'yellow', interval: 500},
  {name: 'green', interval: 4000}
];

let count = 0;

function changeColor() {
  if (count === colorList.length) {
    count = 0;
  }
  console.log(colorList[count].name)
  setTimeout(changeColor, colorList[count].interval)
  count = count + 1;
}

changeColor()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы