MenuМеню
Компонент меню предоставляет набор вертикально расположенных опций. Меню отображается, когда пользователь взаимодействует с кнопкой или другим элементом управления.
Если вам нужно реализовать выпадающее меню, вы можете использовать компонент <mdui-dropdown>.
Использование
При необходимости импортируйте компоненты:
import 'mdui/components/menu.js';
import 'mdui/components/menu-item.js';
При необходимости импортируйте типы TypeScript:
import type { Menu } from 'mdui/components/menu.js';
import type { MenuItem } from 'mdui/components/menu-item.js';
Пример использования:
<mdui-menu>
<mdui-menu-item>Item 1</mdui-menu-item>
<mdui-menu-item>Item 2</mdui-menu-item>
</mdui-menu>Компактная компоновка
Добавьте атрибут dense к компоненту <mdui-menu>, чтобы включить компактную компоновку.
Отключенные пункты меню
Добавьте атрибут disabled к компоненту <mdui-menu-item>, чтобы отключить пункт меню.
Поддержка одиночного выбора
Установите атрибут selects компонента <mdui-menu> в значение single, чтобы включить режим одиночного выбора. В этом случае значением value компонента <mdui-menu> будет значение value выбранного <mdui-menu-item>.
Поддержка множественного выбора
Установите атрибут selects компонента <mdui-menu> в значение multiple, чтобы включить режим множественного выбора. В этом случае значением value компонента <mdui-menu> будет массив значений value выбранных <mdui-menu-item>.
Обратите внимание: в режиме множественного выбора value компонента <mdui-menu> является массивом, который можно читать и устанавливать только через JavaScript-свойство.
Иконка
С помощью атрибутов icon и end-icon у компонента <mdui-menu-item> можно добавить иконки Material Icons слева и справа от пункта меню. С помощью атрибута end-text можно добавить текст справа. Также можно использовать слоты icon, end-icon и end-text для добавления элементов.
Если нужно оставить место для иконки слева для выравнивания с другими пунктами меню, установите атрибут icon в пустую строку.
В режимах одиночного или множественного выбора можно задать иконку выбранного состояния через атрибут selected-icon или слот selected-icon.
Ссылка
Установите атрибут href у компонента <mdui-menu-item>, чтобы превратить пункт меню в ссылку. При этом также можно использовать связанные с ссылками атрибуты: download, target, rel.
Подменю
В компоненте <mdui-menu-item> можно использовать слот submenu для указания элементов подменю.
В компоненте <mdui-menu> можно задать способ вызова подменю через атрибут submenu-trigger.
Когда атрибут submenu-trigger установлен в значение hover, можно задать задержку открытия и закрытия подменю через атрибуты submenu-open-delay и submenu-close-delay у компонента <mdui-menu>.
Пользовательское содержимое
В компоненте <mdui-menu-item> вы можете использовать слот custom для полной настройки содержимого пункта меню.
mdui-menu-item API
Свойства
| Атрибут | Свойство | Reflect | Тип | По умолчанию |
|---|---|---|---|---|
value | value | string | - | |
Значение пункта меню. | ||||
disabled | disabled | boolean | false | |
Определяет, отключён ли пункт меню. | ||||
icon | icon | string | - | |
Имя иконки Material Icons слева. Можно задать через Если слева не нужна иконка, но нужно зарезервировать место, можно передать пустую строку в качестве заполнителя. | ||||
end-icon | endIcon | string | - | |
Имя иконки Material Icons справа. Можно задать через | ||||
end-text | endText | string | - | |
Текст справа. Можно задать через | ||||
selected-icon | selectedIcon | string | - | |
Имя иконки Material Icons для выбранного состояния. Можно задать через | ||||
submenu-open | submenuOpen | boolean | false | |
Определяет, открыто ли подменю. | ||||
href | href | string | - | |
Целевой URL ссылки. Если задано это свойство, компонент будет отображаться как элемент | ||||
download | download | string | - | |
Имя файла для скачивания при переходе по ссылке. Примечание: Это свойство действует только при заданном свойстве | ||||
target | target | '_blank' | '_parent' | '_self' | '_top' | - | |
Определяет, где будет открыта ссылка. Возможные значения:
Примечание: Это свойство действует только при заданном свойстве | ||||
rel | rel | 'alternate' | 'author' | 'bookmark' | 'external' | 'help' | 'license' | 'me' | 'next' | 'nofollow' | 'noreferrer' | 'opener' | 'prev' | 'search' | 'tag' | - | |
Определяет тип связи между текущим документом и связанным документом. Возможные значения:
Примечание: Доступно только при заданном свойстве | ||||
autofocus | autofocus | boolean | false | |
Определяет, будет ли элемент автоматически получать фокус после загрузки страницы. | ||||
tabindex | tabIndex | number | - | |
Порядок перехода к элементу при нажатии клавиши Tab. | ||||
Методы
| Название | Параметры | Возвращаемое значение |
|---|---|---|
click | void | |
Имитирует щелчок мыши по элементу. | ||
focus |
| void |
Устанавливает фокус на текущий элемент. В качестве аргумента можно передать объект со свойством:
| ||
blur | void | |
Убирает фокус с текущего элемента. | ||
События
| Название |
|---|
focus |
Срабатывает при получении фокуса. |
blur |
Срабатывает при потере фокуса. |
submenu-open |
Срабатывает в начале открытия подменю. Можно отменить открытие, вызвав |
submenu-opened |
Срабатывает после завершения анимации открытия подменю. |
submenu-close |
Срабатывает в начале закрытия подменю. Можно отменить закрытие, вызвав |
submenu-closed |
Срабатывает после завершения анимации закрытия подменю. |
Slots
| Название |
|---|
| (по умолчанию) |
Текст пункта меню. |
icon |
Иконка слева от пункта меню. |
end-icon |
Иконка справа от пункта меню. |
end-text |
Текст справа от пункта меню. |
selected-icon |
Иконка выбранного состояния. |
submenu |
Подменю. |
custom |
Любое пользовательское содержимое. |
mdui-menu API
Свойства
| Атрибут | Свойство | Reflect | Тип | По умолчанию |
|---|---|---|---|---|
selects | selects | 'single' | 'multiple' | - | |
Режим выбора пунктов меню. По умолчанию выбор отключён. Возможные значения:
| ||||
value | value | string | string[] | - | |
Значение текущего выбранного Примечание: HTML-атрибут этого свойства всегда является строкой; задать начальное значение через HTML-атрибут можно только при | ||||
dense | dense | boolean | false | |
Определяет, использовать ли компактный режим для пунктов меню. | ||||
submenu-trigger | submenuTrigger | 'click' | 'hover' | 'focus' | 'manual' | string | 'click hover' | |
Способ открытия подменю, можно указать несколько значений через пробел. Возможные значения:
| ||||
submenu-open-delay | submenuOpenDelay | number | 200 | |
Задержка открытия подменю при наведении мыши, в миллисекундах. | ||||
submenu-close-delay | submenuCloseDelay | number | 200 | |
Задержка закрытия подменю при наведении мыши, в миллисекундах. | ||||
Slots
| Название |
|---|
| (по умолчанию) |
Элементы подменю ( |
Пользовательские CSS-свойства
| Название |
|---|
--shape-corner |
Размер скругления углов компонента. Можно указать конкретное значение в пикселях, но рекомендуется использовать дизайн-токены. |