Introdução
Neste projeto, você aprenderá como criar um sistema de semáforo que muda a cor da luz de vermelho para verde após um determinado intervalo de tempo. Este projeto o ajudará a entender os fundamentos do JavaScript e como manipular o DOM para exibir diferentes elementos com base em eventos temporais.
👀 Pré-visualização

🎯 Tarefas
Neste projeto, você aprenderá:
- Como configurar uma estrutura básica de projeto HTML e JavaScript
- Como implementar uma função para mudar a exibição do semáforo para vermelho após 3 segundos
- Como implementar uma função para mudar a exibição do semáforo para verde após 6 segundos
- Como coordenar a execução das funções de luz vermelha e verde usando
async/await - Como testar o sistema de semáforo e garantir que ele funcione conforme o esperado
🏆 Conquistas
Após concluir este projeto, você será capaz de:
- Manipular o DOM usando JavaScript para mudar a exibição de elementos HTML
- Usar
setTimeout()para agendar eventos baseados em tempo - Gerenciar operações assíncronas com
async/await - Testar e depurar seu código JavaScript
Configurar a Estrutura do Projeto
Nesta etapa, você configurará a estrutura do projeto e preparará os arquivos e pastas necessários.
- Abra o editor. Você deve ver
index.html,trafficlights.jse alguns arquivos de imagem no diretório/home/labex/project. - Clique no botão Go Live no canto inferior direito do WebIDE para executar o projeto.
- Abra "Web 8080" no topo da VM e atualize-o manualmente para ver a página.

Implementar a Função da Luz Vermelha
Nesta etapa, você implementará a função para mudar a luz para vermelho.
- No arquivo
trafficlights.js, localize a funçãored(). - Defina uma variável acima da função
rede atribua o valor inicial:
let trafficlightsTimer = 3000;
// function red() {...}
- A função
red()deve mudar a exibição da luz padrão paranonee a exibição da luz vermelha parainline-blockapós 3 segundos.
function red() {
return new Promise(function (resolve, reject) {
setTimeout(() => {
defaultlight.style.display = "none";
redlight.style.display = "inline-block";
resolve();
}, trafficlightsTimer);
});
}
Implementar a Função da Luz Verde
Nesta etapa, você implementará a função para mudar a luz para verde.
- No arquivo
trafficlights.js, localize a funçãogreen(). - A função
green()deve mudar a exibição da luz vermelha paranonee a exibição da luz verde parainline-blockapós 3 segundos (6 segundos após o carregamento da página).
function green() {
return new Promise(function (resolve, reject) {
setTimeout(() => {
redlight.style.display = "none";
greenlight.style.display = "inline-block";
resolve();
}, trafficlightsTimer);
});
}
Chamar as Funções das Luzes de Trânsito
Nesta etapa, você chamará a função trafficlights() para iniciar a sequência dos semáforos.
- No arquivo
trafficlights.js, localize a funçãotrafficlights(). - A função
trafficlights()deve chamar as funçõesred()egreen()em sequência, usando a sintaxeasync/await.
async function trafficlights() {
await red();
await green();
}
trafficlights();
module.exports = { trafficlights };
Testar as Luzes de Trânsito
- Salve as alterações no arquivo
trafficlights.js. - Atualize a página no seu navegador. Você deve ver os semáforos mudarem da luz padrão para vermelho e, em seguida, para verde após 6 segundos. O resultado final é o seguinte:

Parabéns! Você concluiu o projeto de Luz com Mudança de Cor. Se tiver alguma dúvida ou precisar de mais assistência, sinta-se à vontade para perguntar.
Resumo
Parabéns! Você concluiu este projeto. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.



