<header>
<h2 class="title">keydown</h2>
<p class="description">Спрацьовує, коли натискається клавіша на клавіатурі для керування рухом об'єкта.</p>
</header>
<main>
<div class="result">
<div class="movable-box" id="movableBox"></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);
}
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);
height: 300px;
position: relative;
}
.movable-box {
width: 50px;
height: 50px;
background-color: #4CAF50;
position: absolute;
top: 125px;
left: 125px;
}
const box = document.getElementById('movableBox');
let positionX = 125;
let positionY = 125;
document.addEventListener('keydown', function(event) {
const step = 10; // Відстань переміщення на кожне натискання клавіші
switch (event.key) {
case 'ArrowUp':
positionY = Math.max(0, positionY - step); // Не виходимо за межі контейнера
break;
case 'ArrowDown':
positionY = Math.min(250, positionY + step); // Обмежуємо нижню межу
break;
case 'ArrowLeft':
positionX = Math.max(0, positionX - step); // Обмежуємо ліву межу
break;
case 'ArrowRight':
positionX = Math.min(250, positionX + step); // Обмежуємо праву межу
break;
}
box.style.top = positionY + 'px';
box.style.left = positionX + 'px';
});
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.