123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- //Таблица умножения
- let body = document.querySelector(".body"); //Нахожу в разметке тег body, буду в нем отрисовывать таблицу
- let table = document.createElement("table"); //Создания тега table
- table.classList.add("table"); //Присваиваю таблице класс table для частичной стилизации из css
- for(let i = 1; i < 10; i++) { //Цикл для отрисовки таблицы
- let tr = document.createElement("tr");
- for(let j = 1; j < 10; j++) {
- let td = document.createElement("td");
- td.textContent = i*j;
- tr.appendChild(td);
- }
- table.appendChild(tr);
- }
- body.appendChild(table);
- //Подсветить ячейку
- //Подсветить строку и столбец,
- let allTd = document.querySelectorAll("td"); //Нахожу все td на странице что бы я мог навесить слушателей событий
- let fillTheLineHorizontally = function(style, element) { //Эта функция будет каждому элементу td в строке добавляет атрибут style с переданным в него цветом
- let allparentTdElement = element.parentElement.querySelectorAll("td");
- for(let itemElement of allparentTdElement) {
- itemElement.style = style;
- }
- }
- let fillTheLineVertically = function(style, element, index) { //Эта функция будет каждому элементу td в столбце добавляет атрибут style с переданным в него цветом, отличия от функции fillTheLineHorizontally состоит в том что fillTheLineVertically заходит в каждый элемент tr и красит один элемент td по индексу который я в нее передаю
- let mainTable = element.parentElement.parentElement;
- let mainTr = mainTable.querySelectorAll("tr");
- for(let mainItemTr of mainTr) {
- mainItemTr.children[index].style = style;
- }
- }
- for(item of allTd) { //Этот цикл навешивает слушатели событий на все td
- item.addEventListener("mouseover", function(evt) { //Отрисовка цвета при ховере
- let index = this.cellIndex;
- fillTheLineHorizontally("background-color: #f7d571;", this);
- fillTheLineVertically("background-color: #f7d571;", this, index)
- this.style = "background-color: #a8996a;";
- });
- item.addEventListener("mouseout", function() { //Удаление отрисовки когда ховер пропадает
- let index = this.cellIndex;
- fillTheLineHorizontally("", this);
- fillTheLineVertically("", this, index)
- });
- }
- //Calc
- //Calc Live
- //Я уже реализовал эти задачи в HW 01 для задания calc, данные обновляются динамически
|