<header>
<h2 class="title">MouseEvent -> offsetY</h2>
<p class="description">Визначає вертикальну позицію курсора відносно елемента для динамічного управління заповненням.</p>
</header>
<main>
<div class="result">
<div class="fill-bar" id="fillBar">
<div class="fill" id="fill"></div>
</div>
</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);
}
.fill-bar {
width: 50px;
height: 300px;
background-color: #ddd;
position: relative;
cursor: pointer;
}
.fill {
width: 100%;
height: 0;
background-color: #4caf50;
position: absolute;
bottom: 0;
transition: height 0.1s;
}
const fillBar = document.getElementById('fillBar');
const fill = document.getElementById('fill');
// Функція для обчислення рівня заповнення на основі вертикального положення
fillBar.addEventListener('mousemove', (event) => {
const fillHeight = fillBar.offsetHeight - event.offsetY;
const percentage = (fillHeight / fillBar.offsetHeight) * 100;
fill.style.height = `${percentage}%`;
});
// Скидання заповнення при виході курсора з панелі
fillBar.addEventListener('mouseleave', () => {
fill.style.height = '0';
});
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.