აქტივაციის სტილების მონაცვლეობა JavaScript-ში

წინა გაკვეთილში ჩვენ ვისწავლეთ უჯრების აქტივაცია მათზე დაწკაპუნებით. ახლა კი მოდით გავაკეთოთ ისე, რომ ფერების მონაცვლეობა მოხდეს: პირველი უჯრა დაიფაროს წითლად, მეორე - მწვანედ, მესამე - ისევ წითლად და ასე შემდეგ.

ამ ამოცანის გადასაჭრელად ჩვენ გვჭირდება უკვე ორი CSS კლასი:

css.color1 {
  background: red;
}
.color2 {
  background: green;
}

განვახორციელოთ აღწერილი მონაცვლეობა:

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

გაანალიზეთ ჩემი კოდი, შემდეგ კი დამოუკიდებლად გაიმეორეთ ამ ამოცანის ამოხსნა.

მრავალი ფერის მონაცვლეობა მასივიდან

ახლა დავუშვათ, ჩვენ გვსურს არა ორი ფერის მონაცვლეობა, არამედ ნებისმიერი რაოდენობის. მოდით ამისთვის CSS კლასების მასივი შევინახოთ:

javascriptlet colors = ['color1', 'color2', 'color3'];

დავწეროთ ჩვენი კლასების ფერები:

css.color1 {
  background: red;
}
.color2 {
  background: green;
}
.color3 {
  background: yellow;
}

ახლა კი განვახორციელოთ მონაცვლეობა:

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

ახსენით, როგორ მუშაობს ჩემს მიერ მოყვანილი კოდი.