<header>
  <h2 class="title">HTML Events: mousemove</h2>
  <p class="description">Відстежує координати миші та змінює колір фону залежно від положення курсора.</p>
</header>
<main>
  <div class="result">
    <!-- Блок для взаємодії -->
    <div id="interactiveBox" class="box">
      Наведіть курсор, щоб змінити колір фону
    </div>
  </div>
</main>
body {
  font-size: 16px;
  line-height: 1.5;
  font-family: monospace;
}

header {
  background-color: #f1f1f1;
  margin-bottom: 25px;
  padding: 15px;
  -webkit-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
  -moz-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;
  -webkit-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
  -moz-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
  box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
}

.box {
  width: 300px;
  height: 200px;
  margin: 0 auto;
  background-color: rgb(200, 200, 200);
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  transition: background-color 0.3s ease;
}
const box = document.getElementById('interactiveBox');

// Додаємо обробник події mousemove для зміни кольору залежно від координат курсора
box.addEventListener('mousemove', function(event) {
  // Отримуємо ширину і висоту елемента
  const width = box.offsetWidth;
  const height = box.offsetHeight;
  
  // Отримуємо позицію курсора всередині елемента
  const x = event.offsetX;
  const y = event.offsetY;

  // Обчислюємо новий колір на основі положення миші
  const red = Math.round((x / width) * 255);
  const green = Math.round((y / height) * 255);
  const blue = 150;

  // Змінюємо колір фону
  box.style.backgroundColor = `rgb(${red}, ${green}, ${blue})`;
});

// Скидаємо колір при виході миші з елемента
box.addEventListener('mouseleave', function() {
  box.style.backgroundColor = 'rgb(200, 200, 200)';
});

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.