<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
<!-- задача 1: да се създаде скрипт, при който чрез натискане на десен бутон на мишката върху някой параграф,
той получава цвят за фон, определен от полето data-color -->
<!-- задача 2: да се създаде скрипт, при който чрез натискане на клавиш W се увеличава размера на изображението по широчина
с по 10px, а при натискане на клавиш H се увеличава височината на изображението с по 15px -->
<!-- задача 3: да се създаде скрипт, при който чрез въвеждане на текст в едноредово поле се отчита натискането на клавиш
и се търси съвпадение в списък от елементи. При открито съответствие се оцветява само частта от въведеното. -->
<script>
document.addEventListener("DOMContentLoaded", () => {
clean(document.body);
const task1 = () => {
let paragraphs = document.querySelectorAll('p');
paragraphs.forEach(item => {
item.addEventListener('contextmenu', (e) => {
e.preventDefault();
e.target.style.background = e.target.dataset.color;
});
});
}
task1();
const task2 = () => {
let img = document.querySelector('img');
document.addEventListener('keydown', (e) => {
let arr = img.src.split('co/')[1].split('x');
let w = parseInt(arr[0]);
let h = parseInt(arr[1]);
if(e.code == 'KeyW'){
w += 10;
}
if(e.code == 'KeyH'){
h +=15;
}
img.src = 'https://placehold.co/'+w+'x'+h;
});
}
task2();
const task3 = () => {
let input = document.querySelector('input');
input.addEventListener('input', (e) => {
let items = document.querySelectorAll('.list-group-item');
items.forEach(li => {
li.innerText = li.innerText;
if(li.innerText.match(e.target.value) && e.target.value != ''){
let arr = li.innerText.split(e.target.value);
let clean = '<span style="background:red">'+ e.target.value + '</span>';
li.innerHTML = arr[0] + clean + arr[1];
}
});
});
}
task3();
});
const clean = (node) =>
{
for(var n = 0; n < node.childNodes.length; n ++)
{
var child = node.childNodes[n];
if
(
child.nodeType === 8
||
(child.nodeType === 3 && !/\S/.test(child.nodeValue))
)
{
node.removeChild(child);
n --;
}
else if(child.nodeType === 1)
{
clean(child);
}
}
}
</script>
</head>
<body>
<!-- задача 1 -->
<div class="container my-4">
<p data-color="red">lorem item 1</p>
<p data-color="orange">lorem item 2</p>
<p data-color="#1920A0">lorem item 3</p>
<p data-color="#F97762">lorem item 4</p>
<p data-color="#131399">lorem item 5</p>
<p data-color="#559992">lorem item 6</p>
<p data-color="#1116AA">lorem item 7</p>
<p data-color="#330000">lorem item 8</p>
<p data-color="green">lorem item 9</p>
<p data-color="blue">lorem item 10</p>
</div>
<!-- задача 1 -->
<!-- задача 2 -->
<div class="container my-4">
<img src="http://placehold.co/250x250" alt="">
</div>
<!-- задача 2 -->
<!-- задача 3 -->
<div class="container my-4">
<input type="text" class="form-control">
<ul class="list-group">
<li class="list-group-item"> Lorem ipsum</li>
<li class="list-group-item"> dolor sit</li>
<li class="list-group-item"> amet consectetur</li>
<li class="list-group-item"> adipisicing elit</li>
<li class="list-group-item"> Facere nemo</li>
<li class="list-group-item"> possimus in totam</li>
<li class="list-group-item"> eos harum rem</li>
<li class="list-group-item"> aliquam, eum recusandae quod</li>
<li class="list-group-item"> odit! Necessitatibus quibusdam</li>
<li class="list-group-item"> illum voluptatem nihil</li>
</ul>
</div>
<!-- задача 3 -->
</body>
</html>