Alternanza di stili di attivazione in JavaScript
Nella lezione precedente abbiamo imparato ad attivare le celle cliccandoci sopra. Ora facciamo in modo che i colori si alternino: lasciamo che la prima cella diventi rossa, la seconda - verde, la terza - di nuovo rossa e così via.
Per risolvere questo compito avremo già bisogno di due classi CSS:
css.color1 {
background: red;
}
.color2 {
background: green;
}
Implementiamo l'alternanza descritta:
javascriptlet 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);
});
}
Задание 1
Analizza il mio codice, poi ripeti autonomamente la soluzione di questo problema.
Alternanza di molti colori da un array
Ora supponiamo di voler alternare non due colori, ma un numero arbitrario. Per fare ciò, memorizziamo un array di classi CSS:
javascriptlet colors = ['color1', 'color2', 'color3'];
Scriviamo i colori per le nostre classi:
css.color1 {
background: red;
}
.color2 {
background: green;
}
.color3 {
background: yellow;
}
E ora implementiamo l'alternanza:
javascriptlet 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;
}
});
}
Задание 2
Spiega come funziona il codice che ho fornito.