main.js 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. //Таблица умножения
  2. var table = document.createElement('table')
  3. for (let i = 0; i <= 10; i++) {
  4. //по строчкам
  5. var tr = document.createElement("tr");
  6. for (let j = 0; j <= 10; j++) {
  7. //по столбцам
  8. var td = document.createElement("td");
  9. let multi = i * j
  10. if (multi == 0) {
  11. multi = i || j;
  12. multi = multi ? multi : '0';
  13. }
  14. //по столбцам умножение
  15. td.innerText = multi;
  16. //добавление в конец к строке столбец
  17. tr.appendChild(td);
  18. }
  19. //добавление к таблице столбец
  20. table.appendChild(tr)
  21. }
  22. document.body.appendChild(table);
  23. //Подсветить ячейку Подсветить строку и столбец
  24. table.onmouseover = function(event) {
  25. if (event.type == 'mouseover') {
  26. event.target.style.background = ("lightyellow");
  27. }
  28. document.querySelectorAll(".backcolor").forEach(
  29. item => item.classList.remove("backcolor")
  30. );
  31. event.target.closest("tr").classList.add("backcolor");
  32. event.target.closest("table").querySelectorAll("tr").forEach(
  33. tr => tr.cells[event.target.cellIndex].classList.add("backcolor")
  34. );
  35. }
  36. table.onmouseout = function(event) {
  37. //удаление предыдущего цвета ячейки
  38. if (event.type == 'mouseout') {
  39. event.target.style.background = ''
  40. }
  41. //удаление предыдущего цвета (строка-столбец по выбранной ячейке)
  42. document.querySelectorAll(".backcolor").forEach(
  43. item => item.classList.remove("backcolor")
  44. );
  45. }
  46. //Calc
  47. //оптимизировала создания множества элементов
  48. //p
  49. function createP(text) {
  50. let p = document.createElement("p");
  51. p.innerHTML = text;
  52. document.body.appendChild(p)
  53. }
  54. //button
  55. function createButton(text) {
  56. let btn = document.createElement("button");
  57. btn.id = text;
  58. btn.innerHTML = "<b>" + text;
  59. btn.classList.add("btn");
  60. document.body.appendChild(btn)
  61. }
  62. //input
  63. function createInput(text) {
  64. let input = document.createElement("input");
  65. input.id = text;
  66. //или так можно задать атрибуты
  67. //input.setAttribute('type', 'number');
  68. //input.setAttribute('min', '0');
  69. input.type = "number";
  70. document.body.appendChild(input)
  71. }
  72. let p1 = createP("CALCULATOR")
  73. document.write("<br>");
  74. let p2 = createP("Enter the numbers")
  75. let inputElem1 = createInput("inputId1");
  76. let inputElem2 = createInput("inputId2");
  77. let buttonSum = createButton("sum");
  78. let buttonMulti = createButton("multiplication");
  79. let buttonSub = createButton("subtraction");
  80. let buttonDiv = createButton("division");
  81. let pResult = document.createElement("p");
  82. document.body.appendChild(pResult)
  83. function res(result) {
  84. pResult.innerHTML = `<br/> Result = ${result.toFixed(2)}`
  85. }
  86. function calc() { res((+inputId1.value) + (+inputId2.value)) }
  87. multiplication.onclick = () => res((+inputId1.value) * (+inputId2.value))
  88. subtraction.onclick = () => res((+inputId1.value) - (+inputId2.value))
  89. division.onclick = () => res((+inputId1.value) / (+inputId2.value))
  90. //сделала преобразователь валют, где подтягивается "реальные" данные валют
  91. let p3 = createP("<br>CONVERTER");
  92. let p4 = createP("Enter the number to convert")
  93. let inputValut = createInput("Valut");
  94. document.write("<br>");
  95. let buttonUSD = createButton("USD");
  96. let buttonEUR = createButton("EUR");
  97. let buttonPLN = createButton("PLN");
  98. let buttonRUB = createButton("RUB");
  99. let buttonGBP = createButton("GBP");
  100. let pResultConvert = document.createElement("p");
  101. document.body.appendChild(pResultConvert)
  102. function resValut(result) {
  103. pResultConvert.innerHTML = `<br/> Result = ${result.toFixed(2)}`
  104. }
  105. let linkjson = fetch('https://open.er-api.com/v6/latest/UAH').then(result => result.json());
  106. USD.onclick = () =>
  107. linkjson.then(data => resValut(Valut.value / data.rates.USD))
  108. EUR.onclick = () =>
  109. linkjson.then(data => resValut(Valut.value / data.rates.EUR))
  110. PLN.onclick = () =>
  111. linkjson.then(data => resValut(Valut.value / data.rates.PLN))
  112. RUB.onclick = () =>
  113. linkjson.then(data => resValut(Valut.value / data.rates.RUB))
  114. GBP.onclick = () =>
  115. linkjson.then(data => resValut(Valut.value / data.rates.GBP))
  116. let p5 = createP("CALCULATOR updated by event")
  117. let p6 = createP("Enter the numbers")
  118. //Calc Live
  119. let inputElem3 = createInput("inputId3");
  120. let inputElem4 = createInput("inputId4");
  121. let pSum = document.createElement("p");
  122. pSum.id = "pSum";
  123. document.body.appendChild(pSum)
  124. let pMultiplication = document.createElement("p");
  125. pMultiplication.id = "pMultiplication";
  126. document.body.appendChild(pMultiplication)
  127. let pSubtraction = document.createElement("p");
  128. pSubtraction.id = "pSubtraction";
  129. document.body.appendChild(pSubtraction)
  130. let pDivision = document.createElement("p");
  131. pDivision.id = "pDivision";
  132. document.body.appendChild(pDivision)
  133. function updateValue() {
  134. pSum.innerHTML = `Result sum = ${((+inputId3.value) + (+inputId4.value)).toFixed(2)} `
  135. pMultiplication.innerHTML = `Result multiplication = ${((+inputId3.value) * (+inputId4.value)).toFixed(2)} `
  136. pSubtraction.innerHTML = `Result Subtraction = ${((+inputId3.value) - (+inputId4.value)).toFixed(2)} `
  137. pDivision.innerHTML = `Result division = ${((+inputId3.value) / (+inputId4.value)).toFixed(2)} `
  138. }
  139. inputId3.addEventListener('change', updateValue);
  140. inputId4.addEventListener('change', updateValue);