MenuMenu
Menu wyświetla listę opcji ułożonych w pionie. Menu pojawia się po kliknięciu z przyciskiem lub inną kontrolką.
Jeśli potrzebujesz zaimplementować menu rozwijane, możesz użyć komponentu <mdui-dropdown>.
Sposób użycia
Zaimportuj komponenty:
import 'mdui/components/menu.js';
import 'mdui/components/menu-item.js';
Zaimportuj typy TypeScript komponentów:
import type { Menu } from 'mdui/components/menu.js';
import type { MenuItem } from 'mdui/components/menu-item.js';
Przykład użycia:
<mdui-menu>
<mdui-menu-item>Pozycja 1</mdui-menu-item>
<mdui-menu-item>Pozycja 2</mdui-menu-item>
</mdui-menu>Kompaktowy układ
Dodanie atrybutu dense do komponentu <mdui-menu> powoduje zastosowanie kompaktowego układu.
Wyłączony element menu
Dodanie atrybutu disabled do komponentu <mdui-menu-item> wyłącza element menu.
Obsługa pojedynczego wyboru
Ustawienie atrybutu selects na single w komponencie <mdui-menu> umożliwia pojedynczy wybór. Wartość value komponentu <mdui-menu> jest wtedy równa wartości value zaznaczonego <mdui-menu-item>.
Obsługa wielokrotnego wyboru
Ustawienie atrybutu selects na multiple w komponencie <mdui-menu> umożliwia wielokrotny wybór. Wartość value komponentu <mdui-menu> jest wtedy tablicą wartości value zaznaczonych <mdui-menu-item>.
Uwaga: W trybie wielokrotnego wyboru, wartość value komponentu <mdui-menu> jest tablicą i może być odczytywana i ustawiana tylko za pomocą właściwości JavaScript.
Ikona
Na komponencie <mdui-menu-item> możesz użyć atrybutów icon i end-icon, aby dodać ikony Material Icons odpowiednio po lewej i prawej stronie elementu menu. Użyj atrybutu end-text, aby dodać tekst po prawej stronie. Możesz również użyć slotów icon, end-icon i end-text do dodania ikon i tekstu.
Jeśli chcesz pozostawić puste miejsce po lewej stronie elementu menu, aby zachować wyrównanie z innymi elementami, możesz ustawić atrybut icon na pusty ciąg znaków.
W trybie pojedynczego lub wielokrotnego wyboru możesz ustawić ikonę stanu zaznaczenia za pomocą atrybutu selected-icon lub slotu selected-icon.
Link
Ustawienie atrybutu href na komponencie <mdui-menu-item> zmienia element menu w link. Dodatkowo możesz użyć atrybutów związanych z linkami: download, target, rel.
Podmenu
W komponencie <mdui-menu-item> możesz użyć slotu submenu, aby określić elementy podmenu.
Na komponencie <mdui-menu> możesz ustawić sposób wyzwalania podmenu za pomocą atrybutu submenu-trigger.
Gdy submenu-trigger jest ustawiony na hover, możesz ustawić opóźnienie otwierania i zamykania podmenu za pomocą atrybutów submenu-open-delay i submenu-close-delay na komponencie <mdui-menu>.
Niestandardowa treść
W komponencie <mdui-menu-item> możesz użyć slotu custom, aby całkowicie dostosować treść elementu menu.
mdui-menu-item API
Właściwości
| Atrybut HTML | Właściwość JavaScript | Reflect | Typ | Domyślne |
|---|---|---|---|---|
value | value | string | - | |
Wartość elementu menu | ||||
disabled | disabled | boolean | false | |
Określa, czy element menu jest wyłączony. | ||||
icon | icon | string | - | |
Nazwa ikony Material Icons po lewej stronie. Można również ustawić za pomocą Jeśli po lewej stronie nie ma być wyświetlana ikona, ale trzeba zarezerwować miejsce na ikonę, można przekazać pusty ciąg znaków jako placeholder | ||||
end-icon | endIcon | string | - | |
Nazwa ikony Material Icons po prawej stronie. Można również ustawić za pomocą | ||||
end-text | endText | string | - | |
Tekst po prawej stronie. Można również ustawić za pomocą | ||||
selected-icon | selectedIcon | string | - | |
Nazwa ikony Material Icons dla stanu zaznaczonego. Można również ustawić za pomocą | ||||
submenu-open | submenuOpen | boolean | false | |
Określa, czy otworzyć podmenu. | ||||
href | href | string | - | |
Docelowy adres URL łącza. Jeśli atrybut jest ustawiony, komponent jest renderowany jako element | ||||
download | download | string | - | |
Nazwa pliku do pobrania. Uwaga: Ten atrybut działa tylko wtedy, gdy ustawiono atrybut | ||||
target | target | '_blank' | '_parent' | '_self' | '_top' | - | |
Sposób otwarcia łącza. Dozwolone wartości:
Uwaga: Ten atrybut działa tylko wtedy, gdy ustawiono atrybut | ||||
rel | rel | 'alternate' | 'author' | 'bookmark' | 'external' | 'help' | 'license' | 'me' | 'next' | 'nofollow' | 'noreferrer' | 'opener' | 'prev' | 'search' | 'tag' | - | |
Relacja między bieżącym dokumentem a dokumentem, do którego prowadzi łącze. Dozwolone wartości:
Uwaga: Dostępne tylko wtedy, gdy określono atrybut | ||||
autofocus | autofocus | boolean | false | |
Określa, czy element automatycznie uzyskuje fokus po załadowaniu strony. | ||||
tabindex | tabIndex | number | - | |
Określa kolejność elementu podczas nawigacji za pomocą klawiatury (przycisk Tab). | ||||
Metody
| Nazwa | Parametry | Zwraca |
|---|---|---|
click | void | |
Symuluje kliknięcie myszą na elemencie | ||
focus |
| void |
Przenosi fokus na bieżący element. Można przekazać obiekt jako parametr, którego właściwości obejmują:
| ||
blur | void | |
Usuwa fokus z bieżącego elementu | ||
Zdarzenia
| Nazwa |
|---|
focus |
Wywoływane po otrzymaniu fokusu |
blur |
Wywoływane po utracie fokusu |
submenu-open |
Wywoływane przed otwarciem podmenu. Można zapobiec otwarciu, wywołując |
submenu-opened |
Wywoływane po zakończeniu animacji otwierania podmenu |
submenu-close |
Wywoływane przed zamknięciem podmenu. Można zapobiec zamknięciu, wywołując |
submenu-closed |
Wywoływane po zakończeniu animacji zamykania podmenu |
Slots
| Nazwa |
|---|
| (domyślny) |
Tekst elementu menu |
icon |
Ikona po lewej stronie elementu menu |
end-icon |
Ikona po prawej stronie elementu menu |
end-text |
Tekst po prawej stronie elementu menu |
selected-icon |
Ikona dla stanu zaznaczonego |
submenu |
Podmenu |
custom |
Dowolna niestandardowa treść |
mdui-menu API
Właściwości
| Atrybut HTML | Właściwość JavaScript | Reflect | Typ | Domyślne |
|---|---|---|---|---|
selects | selects | 'single' | 'multiple' | - | |
Stan zaznaczalności elementów menu. Domyślnie niezaznaczalne. Dozwolone wartości:
| ||||
value | value | string | string[] | - | |
Wartość aktualnie zaznaczonego Uwaga: Atrybut HTML tej właściwości jest zawsze ciągiem znaków i można ustawić wartość początkową przez atrybut HTML tylko wtedy, gdy | ||||
dense | dense | boolean | false | |
Określa, czy elementy menu mają używać zwartego układu. | ||||
submenu-trigger | submenuTrigger | 'click' | 'hover' | 'focus' | 'manual' | string | 'click hover' | |
Sposób wyzwalania podmenu. Obsługuje wiele wartości oddzielonych spacjami. Dozwolone wartości:
| ||||
submenu-open-delay | submenuOpenDelay | number | 200 | |
Opóźnienie otwarcia podmenu po najechaniu myszą, w milisekundach | ||||
submenu-close-delay | submenuCloseDelay | number | 200 | |
Opóźnienie zamknięcia podmenu po najechaniu myszą, w milisekundach | ||||
Slots
| Nazwa |
|---|
| (domyślny) |
Elementy podmenu ( |
Właściwości niestandardowe CSS
| Nazwa |
|---|
--shape-corner |
Wielkość zaokrąglenia rogów komponentu. Można określić konkretną wartość w pikselach; ale zaleca się odwołanie do tokenów projektowych |