<header>
<h2 class="title">Event -> eventPhase</h2>
<p class="description">Визначає фазу обробки події: захоплення, цільову або спливання</p>
</header>
<main>
<div class="result">
<div id="outer" class="box">Зовнішній блок
<div id="inner" class="box">Внутрішній блок</div>
</div>
<p id="phaseInfo">Натисніть на блоки, щоб побачити фазу події.</p>
</div>
</main>
body {
font-size: 16px;
line-height: 1.5;
font-family: monospace;
}
header {
background-color: #f1f1f1;
margin-bottom: 25px;
padding: 15px;
box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
}
header h2.title {
padding-bottom: 15px;
border-bottom: 1px solid #999;
}
header p.description {
font-style: italic;
color: #222;
}
.result {
background-color: #f8f8f8;
padding: 15px;
box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
}
.box {
border: 2px solid #3498db;
padding: 20px;
margin: 10px;
text-align: center;
cursor: pointer;
}
#phaseInfo {
margin-top: 20px;
font-weight: bold;
color: #333;
}
const outerBox = document.getElementById('outer');
const innerBox = document.getElementById('inner');
const phaseInfo = document.getElementById('phaseInfo');
// Додавання слухачів для обох елементів з різними фазами обробки
outerBox.addEventListener('click', function(event) {
showEventPhase('Зовнішній блок', event);
}, true); // Захоплення
outerBox.addEventListener('click', function(event) {
showEventPhase('Зовнішній блок', event);
}, false); // Спливання
innerBox.addEventListener('click', function(event) {
showEventPhase('Внутрішній блок', event);
}, true); // Захоплення
innerBox.addEventListener('click', function(event) {
showEventPhase('Внутрішній блок', event);
}, false); // Спливання
// Функція для відображення фази обробки події
function showEventPhase(element, event) {
let phase;
if (event.eventPhase === 1) {
phase = 'захоплення';
} else if (event.eventPhase === 2) {
phase = 'цільова';
} else if (event.eventPhase === 3) {
phase = 'спливання';
}
phaseInfo.textContent = `${element} у фазі ${phase}`;
}
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.