<header>
<h2 class="title">wheel</h2>
<p class="description">Відстежує прокручування миші для зміни масштабу зображення</p>
</header>
<main>
<div class="result">
<!-- Елемент для масштабування -->
<img id="zoomImage" src="https://via.placeholder.com/300" alt="Zoomable Image" />
<!-- Відображення поточного масштабу -->
<p>Поточний масштаб: <span id="scaleValue">1</span>x</p>
<!-- Кнопка для скидання масштабу -->
<button id="resetButton">Скинути масштаб</button>
</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);
text-align: center;
}
img {
display: block;
margin: 20px auto;
transition: transform 0.3s ease;
}
button {
margin-top: 10px;
padding: 8px 16px;
background-color: #4CAF50;
color: white;
border: none;
cursor: pointer;
}
button:hover {
background-color: #45a049;
}
#scaleValue {
font-weight: bold;
}
const image = document.getElementById('zoomImage');
const scaleValueDisplay = document.getElementById('scaleValue');
const resetButton = document.getElementById('resetButton');
let scale = 1; // Початковий масштаб
// Обробник прокручування миші для зміни масштабу зображення
image.addEventListener('wheel', (event) => {
event.preventDefault();
// Змінюємо масштаб залежно від напрямку прокрутки
if (event.deltaY < 0) {
scale += 0.1; // Збільшуємо масштаб
} else {
scale -= 0.1; // Зменшуємо масштаб
}
// Обмежуємо масштаб, щоб він не виходив за межі (0.5x до 3x)
scale = Math.min(Math.max(0.5, scale), 3);
// Застосовуємо масштаб до зображення
image.style.transform = `scale(${scale})`;
scaleValueDisplay.textContent = scale.toFixed(1);
});
// Скидання масштабу до 1x при натисканні кнопки
resetButton.addEventListener('click', () => {
scale = 1;
image.style.transform = `scale(1)`;
scaleValueDisplay.textContent = '1';
});
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.