index.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. /*---=== Таблица умножения ===---*/
  2. let multiplyTable = [];
  3. for (let i = 1; i <= 9; i++) {
  4. multiplyTable[i] = [];
  5. for (let j = 1; j <= 9; j++) {
  6. multiplyTable[i][j] = j * i;
  7. }
  8. }
  9. const htmlTable = (arr) => {
  10. const tableElement = document.createElement('table');
  11. tableElement.classList.add('table');
  12. for (const row in arr) {
  13. const tableRowElement = document.createElement('tr');
  14. for (const cell in arr[row]) {
  15. const tableCellElement = document.createElement('td');
  16. tableCellElement.innerText = arr[row][cell];
  17. tableRowElement.appendChild(tableCellElement);
  18. }
  19. tableElement.appendChild(tableRowElement);
  20. }
  21. return document.querySelector('#multiplyTable').appendChild(tableElement);
  22. }
  23. htmlTable(multiplyTable);
  24. /*---=== /Таблица умножения ===---*/
  25. /*---=== Подсветить ячейку ===---*/
  26. const cell = [...document.querySelectorAll('table tr td')];
  27. cell.forEach(element => {
  28. element.addEventListener('mouseover', event => {
  29. event.target.style.backgroundColor = 'red';
  30. });
  31. element.addEventListener('mouseout', event => {
  32. event.target.style.backgroundColor = '';
  33. });
  34. });
  35. /*---=== /Подсветить ячейку ===---*/
  36. /*---=== Подсветить строку и столбец ===---*/
  37. let cellRow = [...document.querySelectorAll('table tr td')];
  38. const updateColor = (target, color) => {
  39. target.parentElement.style.backgroundColor = color;
  40. [...target.parentElement.parentElement.children].forEach(rows => {
  41. [...rows.children][target.cellIndex].style.backgroundColor = color;
  42. });
  43. }
  44. cellRow.forEach(element => {
  45. element.addEventListener('mouseover', event => {
  46. let {target} = event;
  47. updateColor(target, 'red');
  48. });
  49. element.addEventListener('mouseout', event => {
  50. let {target} = event;
  51. updateColor(target, '');
  52. });
  53. });
  54. /*---=== /Подсветить строку и столбец ===---*/
  55. /*---=== Calc ===---*/
  56. document.addEventListener("DOMContentLoaded", () => {
  57. const weight = document.querySelector('.calc-form .js-form-weight');
  58. const height = document.querySelector('.calc-form .js-form-height');
  59. const age = document.querySelector('.calc-form .js-form-age');
  60. const button = document.querySelector('.calc-form .js-form-calculate');
  61. const formAlertSuccess = document.querySelector('.calc-form .js-alert-success');
  62. const formAlertDanger = document.querySelector('.calc-form .js-alert-danger');
  63. button.addEventListener('click', () => {
  64. if (weight.value && height.value && age.value) {
  65. formAlertSuccess.innerText = `${Math.ceil((10 * weight.value) + (6.25 * height.value) - (5 * age.value) + 5)} ккал/сутки`;
  66. formAlertSuccess.style.setProperty('display', 'block');
  67. formAlertDanger.style.setProperty('display', 'none');
  68. } else {
  69. formAlertSuccess.style.setProperty('display', 'none');
  70. formAlertDanger.style.setProperty('display', 'block');
  71. }
  72. });
  73. });
  74. /*---=== /Calc ===---*/
  75. /*---=== Calc Live ===---*/
  76. document.addEventListener("DOMContentLoaded", () => {
  77. const weight = document.querySelector('.calc-form-live .js-form-weight');
  78. const height = document.querySelector('.calc-form-live .js-form-height');
  79. const age = document.querySelector('.calc-form-live .js-form-age');
  80. const fields = document.querySelectorAll('.js-form-input');
  81. const formAlertSuccess = document.querySelector('.calc-form-live .js-alert-success');
  82. const formAlertDanger = document.querySelector('.calc-form-live .js-alert-danger');
  83. const calc = () => {
  84. if (weight.value && height.value && age.value) {
  85. formAlertSuccess.innerText = `${Math.ceil((10 * weight.value) + (6.25 * height.value) - (5 * age.value) + 5)} ккал/сутки`;
  86. formAlertSuccess.style.setProperty('display', 'block');
  87. formAlertDanger.style.setProperty('display', 'none');
  88. } else {
  89. formAlertSuccess.style.setProperty('display', 'none');
  90. formAlertDanger.style.setProperty('display', 'block');
  91. }
  92. }
  93. [...fields].forEach(element => {
  94. element.addEventListener('input', calc);
  95. });
  96. });
  97. /*---=== /Calc Live ===---*/