Контекстное меню
Класс YMapContextMenu
YMapContextMenu используется для создания контекстного меню на карте. Позволяет создавать настраиваемые меню с пунктами действий при клике правой кнопкой мыши на карте.
Примечание
Данный класс является компонентом пакета @yandex/ymaps3-context-menu и предоставляет дополнительную функциональность в JS API, которая не входит в основное API.
Для подключения пакета воспользуйтесь инструкцией.
Пример использования
Создание и добавление меню:
const contextMenu = new YMapContextMenu({
visible: false,
screenCoordinates: [0, 0],
position: 'bottom right',
width: 240
});
map.addChild(contextMenu);
Работа с пунктами меню:
contextMenu.addChild(new YMapContextMenuItem({
text: 'Название пункта',
visible: true,
onClick: () => {
// обработчик клика
contextMenu.update({visible: false});
}
}));
<YMapContextMenu visible={true} screenCoordinates={[0, 0]} position="bottom right">
<YMapContextMenuItem
text="Название пункта"
visible={true}
order={1}
onClick={() => {
// обработчик клика
console.log('on item click!')
}}
/>
</YMapContextMenu>
<YMapContextMenu :visible="true" :screenCoordinates="[0, 0]" position="bottom right">
<YMapContextMenuItem
text="Название пункта"
:visible="true"
:order="1"
:onClick="() => {
// обработчик клика
console.log('on item click!')
}"
/>
</YMapContextMenu>
Конструктор
new YMapContextMenu(props: YMapContextMenuProps)
Параметры конструктора
|
Параметр |
Тип |
Описание |
|
|
Значение входных |
Унаследовано от
Props
export interface YMapContextMenuProps {
/** Показывает или скрывает контекстное меню. */
visible: boolean;
/** Координаты экрана, где должно появиться контекстное меню. */
screenCoordinates: [number, number];
/** Ширина контекстного меню в пикселях. (по умолчанию "240px"). */
width?: number;
/** Положение контекстного меню относительно указателя. (по умолчанию "внизу справа"). */
position?: Position;
}
Параметры
|
Параметр |
Тип |
Значение по умолчанию |
Описание |
|
|
|
Показывает или скрывает контекстное меню. |
|
|
|
[ |
Координаты экрана, где должно появиться контекстное меню. |
|
|
|
|
240 |
Ширина контекстного меню в пикселях. |
|
|
|
bottom right |
Положение контекстного меню относительно указателя. |
Методы
_onAttach
_onAttach(): void
Возвращается
void
Переопределяет
YMapGroupEntity.__onAttach
_onUpdate
_onUpdate(): void
Возвращается
void
Переопределяет
YMapGroupEntity._onUpdate
_onDetach
_onDetach(): void
Возвращается
void
Переопределяет
YMapGroupEntity._onDetach
Класс YMapContextMenuItem
YMapContextMenuItem отвечает за создание отдельных пунктов контекстного меню на карте.
Примечание
Данный класс является компонентом пакета @yandex/ymaps3-context-menu и предоставляет дополнительную функциональность в JS API, которая не входит в основное API.
Для подключения пакета воспользуйтесь инструкцией.
Пример использования
Создание и добавление меню:
const contextMenu = new YMapContextMenu({
visible: false,
screenCoordinates: [0, 0],
position: 'bottom right',
width: 240
});
map.addChild(contextMenu);
Работа с пунктами меню:
contextMenu.addChild(new YMapContextMenuItem({
text: 'Название пункта',
visible: true,
onClick: () => {
// обработчик клика
contextMenu.update({visible: false});
}
}));
<YMapContextMenu visible={true} screenCoordinates={[0, 0]} position="bottom right">
<YMapContextMenuItem
text="Название пункта"
visible={true}
order={1}
onClick={() => {
// обработчик клика
console.log('on item click!')
}}
/>
</YMapContextMenu>
<YMapContextMenu :visible="true" :screenCoordinates="[0, 0]" position="bottom right">
<YMapContextMenuItem
text="Название пункта"
:visible="true"
:order="1"
:onClick="() => {
// обработчик клика
console.log('on item click!')
}"
/>
</YMapContextMenu>
Конструктор
new YMapContextMenuItem(props: YMapContextMenuItemProps)
Параметры конструктора
|
Параметр |
Тип |
Описание |
|
|
Значение входных |
Унаследовано от
Props
export interface YMapContextMenuItemProps {
/** Показывает или скрывает пункт контекстного меню. */
visible: boolean;
/** Текст пункта меню. */
text: string;
/** Ссылка на значок или HTML-элемент со значком для пункта меню (необязательно). */
icon?: string | HTMLElement;
/** Расположение значка. (по умолчанию "start"). */
iconPosition?: 'start' | 'end';
/** Функция обратного вызова для обработки щелчка по пункту меню. */
onClick: () => void;
/** Флажок, указывающий, отключен ли пункт меню. (по умолчанию "false"). */
disabled?: boolean;
/** Устанавливает порядок расположения пунктов меню в списке.(по умолчанию "0"). */
order?: number;
}
Параметры
|
Параметр |
Тип |
Значение по умолчанию |
Описание |
|
|
|
Показывает или скрывает пункт контекстного меню. |
|
|
|
|
Текст пункта меню. |
|
|
|
|
Ссылка на значок или HTML-элемент со значком для пункта меню (необязательно). |
|
|
|
|
start |
Расположение значка. |
|
|
|
Функция обратного вызова для обработки щелчка по пункту меню. |
|
|
|
|
false |
Флажок, указывающий, отключен ли пункт меню. |
|
|
|
0 |
Устанавливает порядок расположения пунктов меню в списке. |
Методы
_onAttach
_onAttach(): void
Возвращается
void
Переопределяет
YMapGroupEntity.__onAttach
_onUpdate
_onUpdate(): void
Возвращается
void
Переопределяет
YMapGroupEntity._onUpdate
_onDetach
_onDetach(): void
Возвращается
void
Переопределяет
YMapGroupEntity._onDetach