Alyona Brytvina il y a 2 ans
Parent
commit
68e812aa78
3 fichiers modifiés avec 299 ajouts et 0 suppressions
  1. 12 0
      HW06/index.html
  2. 208 0
      HW06/main.js
  3. 79 0
      HW06/style.css

+ 12 - 0
HW06/index.html

@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>HW06</title>
+    <link rel="stylesheet" href="style.css">
+</head>
+<body>
+<ol class="list"></ol>
+<script src="main.js"></script>
+</body>
+</html>

+ 208 - 0
HW06/main.js

@@ -0,0 +1,208 @@
+function runMultiplicationTable(){
+    const $table = document.createElement('table');
+    document.body.appendChild($table);
+
+    for (let k = 0; k < 11; k++) {
+        const $tr = document.createElement('tr');
+        $tr.className = 'tr';
+        $table.appendChild($tr);
+
+        for (let j = 0; j < 11; j++) {
+            const $td = document.createElement('td');
+            $td.className = 'td';
+
+            if(k === 0){
+                $td.innerText = `${(k+1)*j}`;
+            }else if(j === 0){
+                $td.innerText = `${(j+1)*k}`;
+            }else{
+                $td.innerText = `${k*j}`
+            }
+            $tr.appendChild($td);
+        }
+    }
+}
+
+function runHighlightCell(){
+    const $table = document.createElement('table');
+document.body.appendChild($table);
+
+for (let k = 0; k < 11; k++) {
+    const $tr = document.createElement('tr');
+    $tr.className = 'tr';
+    $table.appendChild($tr);
+
+    for (let j = 0; j < 11; j++) {
+        const $td = document.createElement('td');
+        $td.className = 'td';
+
+        if(k === 0){
+            $td.innerText = `${(k+1)*j}`;
+        }else if(j === 0){
+            $td.innerText = `${(j+1)*k}`;
+        }else{
+            $td.innerText = `${k*j}`
+        }
+        $tr.appendChild($td);
+
+        $td.onmouseover = function(event){
+            let target = event.target;
+            target.style.background = 'violet';
+        }
+
+        $td.onmouseout = function(event){
+            let target = event.target;
+            target.style.background = '';
+        }
+    }
+}
+}
+
+function runHighlightRowAndColumn(){
+    const $table = document.createElement('table');
+document.body.appendChild($table);
+
+for (let k = 0; k < 11; k++) {
+    const $tr = document.createElement('tr');
+    $tr.className = 'tr';
+    $table.appendChild($tr);
+
+    for (let j = 0; j < 11; j++) {
+        const $td = document.createElement('td');
+        $td.className = 'td';
+
+        if(k === 0){
+            $td.innerText = `${(k+1)*j}`;
+        }else if(j === 0){
+            $td.innerText = `${(j+1)*k}`;
+        }else{
+            $td.innerText = `${k*j}`
+        }
+        $tr.appendChild($td);
+
+        $td.onmouseover = function(event){
+            let target = event.target;
+            target.style.background = 'yellow';
+
+
+            document.querySelectorAll('.selected').forEach(
+                item => item.classList.remove('selected')
+            )
+
+            target.closest('tr').classList.add('selected');
+
+            target.closest('table').querySelectorAll('tr').forEach(
+                row => row.cells[target.cellIndex].classList.add('selected')
+            )
+        }
+
+        $td.onmouseout = function(event){
+            let target = event.target;
+            target.style.background = '';
+            document.querySelectorAll('.selected').forEach(
+                item => item.classList.remove('selected'))
+        }
+    }
+}
+}
+
+function runCalc(){
+    const $wrapper = document.createElement('div');
+    $wrapper.className = 'wrapper';
+    document.body.appendChild($wrapper);
+
+    const $h1 = document.createElement('h1');
+    $wrapper.appendChild($h1);
+    $h1.textContent = 'Калькулятор';
+
+    const $input = document.createElement('input');
+    $input.type = 'number';
+    $input.id = 'input';
+    $input.placeholder = 'Введите число';
+    $wrapper.appendChild($input);
+
+    const $input1 = document.createElement('input');
+    $input1.type = 'number';
+    $input1.id = 'input1';
+    $input1.placeholder = 'Введите число';
+    $wrapper.appendChild($input1);
+
+    const $button = document.createElement('button');
+    $button.id = 'calc';
+    $button.textContent = 'Посчитать';
+    $wrapper.appendChild($button);
+
+    $button.onclick = () => {
+        alert(`Результат сложения: ${+$input.value}+${+$input1.value}=${+$input.value+(+$input1.value)}`)
+
+        const $out = document.createElement('out');
+        $wrapper.appendChild($out);
+        $out.textContent = `Результат сложения: ${+$input.value}+${+$input1.value}=${+$input.value+(+$input1.value)}`;
+
+        $input.value = '';
+        $input1.value = '';
+    }
+}
+
+
+function runCalcLive(){
+    const $wrapper = document.createElement('div');
+    $wrapper.className = 'wrapper';
+    document.body.appendChild($wrapper);
+
+    const $h1 = document.createElement('h1');
+    $wrapper.appendChild($h1);
+    $h1.textContent = 'Калькулятор';
+
+    const $input = document.createElement('input');
+    $input.type = 'number';
+    $input.id = 'input';
+    $input.placeholder = 'Введите число';
+    $wrapper.appendChild($input);
+
+    const $input1 = document.createElement('input');
+    $input1.type = 'number';
+    $input1.id = 'input1';
+    $input1.placeholder = 'Введите число';
+    $wrapper.appendChild($input1);
+
+    const $button = document.createElement('button');
+    $button.id = 'calc';
+    $button.textContent = 'Посчитать';
+    $wrapper.appendChild($button);
+    function calc(){
+        const $out = document.createElement('out');
+        $wrapper.appendChild($out);
+        $out.textContent = `Результат сложения: ${+$input.value}+${+$input1.value}=${+$input.value+(+$input1.value)}`;
+    }
+    $input.oninput = calc;
+    $input1.oninput = calc;
+}
+
+const tasksArray = [
+    ['Таблица умножения', runMultiplicationTable],
+    ['Подсветить ячейку', runHighlightCell],
+    ['Подсветить строку и столбец,', runHighlightRowAndColumn],
+    ['Calc', runCalc],
+    ['Calc Live', runCalcLive],
+];
+
+const $list = document.querySelector('.list');
+tasksArray.forEach(task => {
+    const [name, callback] = task;
+
+    const $div = document.createElement('div');
+    $div.className = 'div';
+
+    let $button = document.createElement('button');
+    $button.textContent = 'Запустить';
+    $button.className = 'button';
+    $button.onclick = callback;
+    $div.appendChild($button);
+
+    const $li = document.createElement('li');
+    $li.className = 'li';
+    $li.textContent = name;
+    $div.appendChild($li);
+    $list.appendChild($div);
+});

+ 79 - 0
HW06/style.css

@@ -0,0 +1,79 @@
+
+.td{
+    border: 1px solid darkgrey;
+    width: 40px;
+    height: 40px;
+    text-align: center;
+    vertical-align: middle;
+}
+
+.selected{
+    background: greenyellow;
+}
+
+.wrapper{
+    /*margin-top: 200px;*/
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+}
+
+#input, #input1{
+    border: 1px solid gray;
+    border-radius: 3px;
+    height: 25px;
+    font-size: 16px;
+    display: block;
+    margin-top:5px;
+}
+
+#calc{
+    border-radius: 3px;
+    cursor: pointer;
+    height: 25px;
+    width: 80px;
+    font-size: 12px;
+    margin: 5px;
+    border: 1px solid gray;
+}
+
+
+body{
+    font-family: Arial, sans-serif;
+}
+.list {
+    display: flex;
+    justify-content: center;
+    flex-direction: column;
+}
+
+.li {
+    text-decoration: none;
+}
+
+.div {
+    display: flex;
+    align-items: center;
+}
+
+.button {
+    margin: 5px 15px;
+    height: 25px;
+    border: 1px solid tan;
+    border-radius: 3px;
+    cursor: pointer;
+    background-color: cornsilk;
+    color: darkred;
+    position: relative;
+    font-weight: 600;
+    left: 10px;
+}
+
+.button:hover {
+    height: 25px;
+    border: 1px solid darkred;
+    border-radius: 3px;
+    cursor: pointer;
+    background-color: darkred;
+    color: white;
+}