JS властивість Event.relatedTarget (Mouse)
Загальний опис
relatedTarget
— це властивість об'єкта події MouseEvent
, яка повертає елемент, пов'язаний із подіями миші, такими як mouseover
, mouseout
, mouseenter
або mouseleave
. Вона використовується для отримання інформації про елемент, на який курсор миші перемістився або з якого вийшов. Наприклад, у події mouseover
властивість relatedTarget
вказує на елемент, з якого мишу перемістили на поточний елемент, а в події mouseout
— на елемент, на який мишу перемістили після виходу з поточного елемента.
Ця властивість особливо корисна при роботі з динамічними інтерфейсами, де потрібно знати, які елементи взаємодіють із курсором миші, наприклад, при створенні підказок або випадаючих меню. За допомогою relatedTarget
можна уникнути зайвих подій або реалізувати більш точне відстеження переміщень миші між різними елементами.
Приклад використання:
element.addEventListener('mouseout', function(event) {
console.log("Миша покинула елемент. Новий елемент: ", event.relatedTarget);
});
У цьому прикладі, коли миша виходить за межі елемента, relatedTarget
містить посилання на елемент, на який миша перемістилася. Це дозволяє обробляти ситуації, коли потрібно реагувати на вихід курсора з елемента.
Робота з relatedTarget
може включати перевірку того, чи дійсно курсор перейшов на інший елемент, а не просто вийшов за межі сторінки. Важливо пам'ятати, що для подій, таких як mouseenter
або mouseleave
, властивість relatedTarget
працює аналогічно, вказуючи на елемент, на який або з якого перейшла миша.
Порада: | Не завжди на події |
Порада: | При використанні |
Порада: | Для випадаючих меню або підказок варто використовувати |
Синтаксис
event.relatedTarget
Значення
Return
Переглядачі
Переглядач | |||||
---|---|---|---|---|---|
1 |
1.5 |
1 |
12.1 |
12 |
Переглядач | ||||
---|---|---|---|---|
37 |
18 |
4 |
1 |
Переглядач | ||
---|---|---|
- |
- |
Приклади
Коли користувач відводить курсор з кнопки, relatedTarget
перевіряє, чи є цільовий елемент (той, на який наведено) нашою цільовою зоною (targetZone
). Якщо це так, кнопка змінює колір на зелений, і виводиться повідомлення про це. В інших випадках кнопка стає червоною.
У цьому прикладі, коли курсор миші залишає першу кнопку і переходить на другу, використовується relatedTarget
для визначення цього переміщення. Це корисно для створення інтерактивних елементів, де важливо знати, чи миша перемістилася між певними елементами.
const button1 = document.getElementById('button1');
const button2 = document.getElementById('button2');
button1.addEventListener('mouseout', function(event) {
if (event.relatedTarget === button2) {
console.log("Миша перейшла з кнопки 1 на кнопку 2");
}
});
Цей приклад показує, як закрити випадаюче меню, якщо курсор миші виходить за межі його елементів. Використовуючи relatedTarget
, можна переконатися, що миша дійсно покинула меню, а не просто перемістилася між його частинами, що допомагає уникнути передчасного закриття меню.
const dropdown = document.getElementById('dropdown');
const closeMenu = () => {
dropdown.style.display = 'none';
};
dropdown.addEventListener('mouseout', function(event) {
if (!dropdown.contains(event.relatedTarget)) {
closeMenu();
}
});