Подсказки
Чтобы показать всплывающую подсказку при наведении курсора на объект, нужно создать HTML-элемент и показывать/скрывать его в обработчиках событий mouseover
и mouseout
.
Подсказка для маркера
Например, чтобы добавить подсказку для маркера, нужно добавить обработчики для событий mouseover
и mouseout
при помощи метода on():
marker.on('mouseover', (e) => {
console.log('курсор перешёл на маркер');
});
marker.on('mouseout', (e) => {
console.log('курсор покинул маркер');
});
Основной смысл в том, чтобы показать HTML-элемент в обработчике mouseover
и скрыть его в обработчике mouseout
. Координаты для показа элемента можно получить через объект события (см. MapPointerEvent).
Перед показом элемент нужно скрыть и указать абсолютное позиционирование (position: absolute;
или position: fixed;
). Кроме этого, нужно указать для свой ства pointer-events
значение none
или добавить небольшой отступ для элемента. Если этого не сделать, подсказка будет показана прямо под курсором, что приведет к событию mouseout
, обработчик которого скроет подсказку.
Пример разметки для простой подсказки:
<style>
#tooltip {
padding: 20px 40px;
background: #fff;
display: none;
position: fixed;
pointer-events: none;
}
</style>
<div id="tooltip">Hello, world!</div>
Примера кода, который покажет подсказку при наведении курсора на маркер:
const tooltipEl = document.getElementById('tooltip');
marker.on('mouseover', (event) => {
// Отступ в пикселях
const offset = 5;
tooltipEl.style.top = `${event.point[1] + offset}px`;
tooltipEl.style.left = `${event.point[0] + offset}px`;
tooltipEl.style.display = 'block';
});
marker.on('mouseout', (e) => {
tooltipEl.style.display = 'none';
});
Полный пример кода приведён ниже. Наведите курсор на маркер, чтобы увидеть подсказку.