Code - A lâmpada
Código em JavaScript que acende e apaga uma lâmpada
Nesta matéria utilizarei o código que faz a uma lâmpada acender e apagar.
Clique nas abas para visualizar as partes separadamente: HTML, JS e resultado.
See the Pen a lâmpada by Flávio Micheletti (@flaviomicheletti) on CodePen.
A lógica do programa é bem simples, utilizamos 2 imagens:

Analisando o caminho do arquivo podemos descobrir se ela está ou ligado.
Invertemos o estado alterando o caminho, hora para acessa (“lampada-on”), hora para apagada (“lampada-off”).
Faremos isso a cada click na tag <img>.
se (o caminho da imagem contiver o pedaço de string "lampada-on") então
desligue a lâmpada
se não
ligue a lâmpada
Explicando o código
Precisamos buscar o elemento img para podermos manipulá-lo. Fazemos isso utilizando a função
getElementById(). Ela buscará um elemento HTML na árvore DOM que
contenha o atributo id='myimage'
var element = document.getElementById('myimage');
Esperamos que nosso HTML tenha uma (única) tag <img> com o atributo id definido. O atributo scr indica o local
onde encontra-se a imagem e o atributo alt é uma boa prática, ele será exibido caso não encontre o arquivo da imagem
definido no atributo src.
<img id="myimage" scr="local-da-imagem" alt="texto-alternativo" />
Com o elemento devidamente capturado e atribuído a variável element, devemos ligar (anexar) nossa função ao evento click.
element.onclick = function() {
//
// faz alguma coisa!
//
};
Em outras palavras, a cada clique no elemento HTML capturado será disparado uma função previamente atribuída.
No JavaScript é muito comum colocarmos uma função dentro de uma variável e executarmos a função referenciando-se a variável, essa técnica chama-se funções anônimas, veja:
var minha_funcao = function(a, b) {return a + b};
Agora nos deparamos com o conteúdo de nossa função, ela deve refletir nossa lógica.
Para saber se a lâmpada está ligada utilizamos a função string.match(), o trecho
string é representado pelo source da imagem (element.scr).
A linha do if está “dizendo” o seguinte: “Se a lâmpada estiver ligada…”.
if (element.src.match("lampada-on")) {
//
// desligar
//
} else {
//
// ligar
//
}
Ligar e desligar é fácil, basta substituir o atributo scr pelo caminho da imagem correspondente.
// ligar
element.src="caminho/para/imagem/lampada-on.gif";
// desligar
element.src="caminho/para/imagem/lampada-off.gif";
Veja o código funcionando em sua máquina
Para executar o exemplo em sem computador clone o repositório do GitHub ou simplesmente faça o download do repositório.
Navegue até a pasta javascript-exemplos/lampada/ e abra o arquivo index.html em seu navegador.
Seu feedback é importante!
Este pequeno código tem o objetivo de motivar o leitor no estudo da linguagem JavaScript.
- Ele foi suficientemente simples para seu entendimento?
- Ou foi tão simples que ficou até entediante?
- Faltou alguma explicação?
- Você pode tirar suas duvidas nos comentários abaixo.
Veja esse e outros códigos no .