Aktiválási stílusok váltakozása JavaScriptben
Az előző leckében megtanultuk, hogyan aktiváljunk cellákat rájuk kattintva. Most tegyük meg, hogy a színek váltakozzanak: az első cella színeződjön pirosra, a második - zöldre, a harmadik - ismét pirosra és így tovább.
A feladat megoldásához már két CSS osztályra lesz szükségünk:
.color1 {
background: red;
}
.color2 {
background: green;
}
Valósítsuk meg a leírt váltakozást:
let tds = document.querySelectorAll('#table td');
let color = 'color1';
for (let td of tds) {
td.addEventListener('click', function() {
if (color == 'color1') {
color = 'color2'
} else {
color = 'color1'
}
this.classList.add(color);
});
}
Elemezd a kódomat, majd ismételd meg önállóan ennek a feladatnak a megoldását.
Több szín váltakozása egy tömbből
Most tegyük fel, hogy nem két színt szeretnénk váltogatni, hanem tetszőleges számút. Ehhez tároljunk egy CSS osztályokból álló tömböt:
let colors = ['color1', 'color2', 'color3'];
Írjuk fel az osztályaink színeit:
.color1 {
background: red;
}
.color2 {
background: green;
}
.color3 {
background: yellow;
}
És most valósítsuk meg a váltakozást:
let tds = document.querySelectorAll('#table td');
let i = 0;
let colors = ['color1', 'color2', 'color3'];
for (let td of tds) {
td.addEventListener('click', function() {
this.classList.add(colors[i]);
i++;
if (i == colors.length) {
i = 0;
}
});
}
Magyarázd el, hogyan működik az általam bemutatott kód.