Stap 6, oranje flash
Als we op het oranje licht klikken dan zal die aan gaan, maar we hebben het algoritme al zo verandert dat het oranje licht vanzelf aan gaat als we het licht op rood willen zetten.
Wat we gaan doen is dat we het stoplicht 'uit' gaan zetten als we op het oranje licht klikken.
Welke stappen gaan we doen?
- We gaan een style maken die het oranje licht laat knipperen.
- We maken een nieuwe functie en die noemen we switchOff(). Deze functie voegt de nieuwe stijl toe aan het oranje licht en zet het groene en rode licht uit.
Flash stijl
In de style sectie plaatsen we twee nieuwe stijlen:
.lamp-flash {
animation: flash 1s infinite;
}
@keyframes flash {
0%, 100% { background-color: darkgray; } /* Light off (dark gray color) */
50% { background-color: orange; } /* Light on (orange color) */
}
Als we nu de stijl lamp-flash toevoegen aan het oranje licht dan zal hij gaan knipperen.
Functie
In de nieuwe functie switchOff() zetten we het oranje licht op knipperen.
function switchOff() {
document.getElementById("orange").classList.add('lamp-flash');
}
Functie aanroepen
Als je op het oranje licht klikt dan moet je in plaats van switchLight('red')
nu switchOff()
aanroepen.
Pas dit aan.
Testen
Als je nu op het oranje licht drukt dan gaat het oranje licht knipperen.
Nice, maar er zijn nog wel een paar stappen die niet goed werken.
Dat gaan we nu oplossen.
Oranje dan andere lichten uit.
Pas de switchOff() aan en zet de andere lichten uit. Kijk in de bestaande code hoe je de lichten uitschakelt en plaats deze code in de switchOff functie. Vergeet niet de glow ook uit te zetten!
En dan moet je de flash ook nog weer uit zetten.
Dat doe je met deze code:
document.getElementById("orange").classList.remove('lamp-flash');
Op het moment dat het stop licht uit staat (dus oranje knippert) dan kan je deze weer aan zetten door op het rode of groene licht te klikken.
Bedenk nu zelf waar je de code moet zetten om het stoplichte weer aan te zetten.
Testen
Test of alles werkt aan de hand van volgende tabel.
Status |
Klikt op |
Resultaat |
Werkt? |
Alles uit (begin) |
rood |
rood aan, rest uit. |
|
rood aan |
groen |
groen aan, rest uit |
|
groen aan |
rood |
oranje aan 1 sec, dan rood aan, rest uit. |
|
rood of groen aan |
oranje |
alles uit en oranje gaat knipperen | |
oranje knippert |
rood |
rood aan, rest uit |
|
oranje knippert |
groen |
groen aan, rest uit |
......