script.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. //DOM
  2. /* Таблица умножения
  3. Сделать таблицу умножения, используя DOM createElement
  4. и innerText. Создайте таблицу, вложенные строки и ячейки в циклах. */
  5. let root = document.querySelector('.root');
  6. for (let i = 0; i < 10; i++){
  7. let tr = document.createElement('tr');
  8. root.append(tr);
  9. for (let k = 0; k < 10; k++){
  10. let td = document.createElement('td');
  11. if (i === 0) {
  12. td.innerText = k;
  13. tr.append(td);
  14. } else if (k === 0) {
  15. td.innerText = i;
  16. tr.append(td);
  17. } else {
  18. td.innerText = i * k;
  19. tr.append(td);
  20. }
  21. }
  22. }
  23. /* Подсветить ячейку над которой находится курсор мыши.
  24. Используйте события mouseover и mouseout,
  25. и style.backgroundColor для подсветки.
  26. */
  27. let td = document.querySelectorAll('td');
  28. /* td.forEach((i) => {
  29. i.onmouseover = () => i.style.backgroundColor = 'yellow';
  30. i.onmouseout = () => i.style.backgroundColor = '';
  31. }) */
  32. /*
  33. Подсветить строку и столбец,
  34. в которой находится подсвеченная ячейка. Используйте parentElement (родительский элемент элемента DOM), и список его детей: children.
  35. Читкоды:
  36. в обработчик события в качестве this передается элемент, на котором событие произошло;
  37. у td есть свойство cellIndex, в котором лежит номер ячейки;
  38. у tr, аналогично есть свойство rowIndex - номер строки; */
  39. td.forEach((item, i) => {
  40. item.onmouseover = (e) => {
  41. item.style.backgroundColor = 'yellow';
  42. item.parentNode.style.backgroundColor = 'green';
  43. /* if (td[i].cellIndex === e.target.cellIndex){
  44. for (let i=0; i <0; i++ ){};
  45. console.log(td[i])
  46. }; */
  47. }
  48. item.onmouseout = () => {
  49. item.style.backgroundColor = '';
  50. item.parentNode.style.backgroundColor = '';
  51. }
  52. })
  53. //Calc + Calc Live
  54. let fuel = document.querySelector('[name = "liters"]'),
  55. way = document.querySelector('[name = "km"]'),
  56. checkLiter = document.querySelector('#liter'),
  57. checkUah = document.querySelector('#uah'),
  58. priceInput = document.querySelector('.price__item'),
  59. price = document.querySelector('[name = "price"]'),
  60. reset = document.querySelector('.btn'),
  61. outer = document.querySelector('.outer');
  62. function calcMyConsumption(fuelLiters, kmWay, pricePerLiter) {
  63. if (fuelLiters && kmWay && pricePerLiter) {
  64. pricePerLiter = price.value;
  65. const result = (fuelLiters / kmWay) * 100 * pricePerLiter;
  66. outer.textContent = `Ваш затраты на 100км пути ${result.toFixed(2)} грн`;
  67. reset.style.display = 'block';
  68. } else {
  69. const result = (fuelLiters / kmWay) * 100;
  70. outer.textContent = `Ваш расход на 100км пути ${result.toFixed(2)} литров`;
  71. reset.style.display = 'block';
  72. }
  73. }
  74. checkLiter.addEventListener('change', () => {
  75. if (checkLiter.checked && fuel.value && way.value) {
  76. priceInput.style.display = 'none';
  77. calcMyConsumption(fuel.value, way.value);
  78. } else {
  79. outer.textContent = `Заполните все формы`;
  80. }
  81. })
  82. checkUah.addEventListener('change', () => {
  83. if (checkUah.checked && fuel.value && way.value ) {
  84. priceInput.style.display = 'block';
  85. price.value = '';
  86. outer.textContent = `Внесите цену`;
  87. price.addEventListener('input', () => calcMyConsumption(fuel.value, way.value, price));
  88. } else {
  89. outer.textContent = `Заполните данные формы`;
  90. }
  91. })
  92. reset.addEventListener('click', () => {
  93. fuel.value = '';
  94. way.value = '';
  95. price.value = '';
  96. outer.textContent = '';
  97. priceInput.style.display = 'none';
  98. reset.style.display = 'none';
  99. })