Menu
Le composant Menu affiche une liste verticale d'options. Le menu s'ouvre lorsqu'un utilisateur interagit avec un Button ou un autre contrôle.
Pour un menu déroulant, associez-le au composant <mdui-dropdown>.
Utilisation
Importez les composants :
import 'mdui/components/menu.js';
import 'mdui/components/menu-item.js';
Importez les types TypeScript correspondants :
import type { Menu } from 'mdui/components/menu.js';
import type { MenuItem } from 'mdui/components/menu-item.js';
Exemple d'utilisation :
<mdui-menu>
<mdui-menu-item>Élément 1</mdui-menu-item>
<mdui-menu-item>Élément 2</mdui-menu-item>
</mdui-menu>Disposition compacte
Ajoutez l'attribut dense au composant <mdui-menu> pour une disposition compacte.
Élément de menu désactivé
Ajoutez l'attribut disabled à <mdui-menu-item> pour désactiver un élément de menu.
Sélection unique
Définissez l'attribut selects du composant <mdui-menu> sur single pour la sélection unique. La valeur value du menu correspond à la value de l'élément sélectionné.
Sélection multiple
Définissez l'attribut selects du composant <mdui-menu> sur multiple pour la sélection multiple. La valeur value du menu est un tableau contenant les value des éléments sélectionnés.
Remarque : En mode multiple, la value est un tableau et ne peut être lue/modifiée que via la propriété JavaScript.
Icône
Utilisez les attributs icon, end-icon et end-text sur <mdui-menu-item> pour ajouter des icônes Material Icons ou du texte à gauche/droite. Utilisez les slots correspondants pour des éléments personnalisés.
Pour réserver l'espace d'une icône à gauche sans en afficher, définissez icon sur une chaîne vide.
En mode sélection, utilisez l'attribut selected-icon ou le slot selected-icon pour définir l'icône de l'état sélectionné.
Lien
Ajoutez l'attribut href à <mdui-menu-item> pour l'utiliser comme un lien. Les attributs liés aux liens (download, target, rel) sont disponibles.
Sous-menu
Utilisez le slot submenu dans <mdui-menu-item> pour définir le contenu du sous-menu.
Utilisez l'attribut submenu-trigger sur <mdui-menu> pour définir la méthode de déclenchement du sous-menu.
Lorsque submenu-trigger="hover", vous pouvez utiliser les attributs submenu-open-delay et submenu-close-delay pour les délais d'ouverture/fermeture.
Contenu personnalisé
Utilisez le slot custom de <mdui-menu-item> pour personnaliser complètement le contenu.
mdui-menu-item API
Propriétés
| Attribut HTML | Propriété JavaScript | Reflect | Type | Défaut |
|---|---|---|---|---|
value | value | string | - | |
Valeur de l'élément de menu | ||||
disabled | disabled | boolean | false | |
Si l'élément de menu est désactivé | ||||
icon | icon | string | - | |
Nom de l'icône Material Icons à gauche. Peut également être défini via Si aucune icône ne doit être affichée à gauche, mais qu'un slot pour une icône doit être réservé, vous pouvez passer une chaîne vide pour l'occuper. | ||||
end-icon | endIcon | string | - | |
Nom de l'icône Material Icons à droite. Peut également être défini via | ||||
end-text | endText | string | - | |
Texte à droite. Peut également être défini via | ||||
selected-icon | selectedIcon | string | - | |
Nom de l'icône Material Icons pour l'état sélectionné. Peut également être défini via | ||||
submenu-open | submenuOpen | boolean | false | |
Si le sous-menu est ouvert | ||||
href | href | string | - | |
URL cible du lien. Si cette propriété est définie, le composant sera rendu en tant qu'élément | ||||
download | download | string | - | |
Nom du fichier à télécharger. Remarque : Cette propriété ne s'applique que si l'attribut | ||||
target | target | '_blank' | '_parent' | '_self' | '_top' | - | |
Cible d'ouverture du lien. Les valeurs possibles incluent :
Remarque : Cette propriété ne s'applique que si l'attribut | ||||
rel | rel | 'alternate' | 'author' | 'bookmark' | 'external' | 'help' | 'license' | 'me' | 'next' | 'nofollow' | 'noreferrer' | 'opener' | 'prev' | 'search' | 'tag' | - | |
Relation entre le document actuel et le document lié. Les valeurs possibles incluent :
Remarque : Disponible uniquement lorsque l'attribut | ||||
autofocus | autofocus | boolean | false | |
Si le focus doit être automatiquement obtenu après le chargement de la page | ||||
tabindex | tabIndex | number | - | |
Ordre de l'élément lors de la navigation au clavier avec la touche Tab | ||||
Méthodes
| Nom | Paramètres | Valeur de retour |
|---|---|---|
click | void | |
Simule un clic sur l'élément | ||
focus |
| void |
Place le focus sur l'élément. Vous pouvez passer un objet en paramètre, dont les propriétés incluent :
| ||
blur | void | |
Retire le focus de l'élément | ||
Événements
| Nom |
|---|
focus |
Se déclenche lorsque l'élément obtient le focus |
blur |
Se déclenche lorsque l'élément perd le focus |
submenu-open |
Se déclenche lorsque le sous-menu commence à s'ouvrir. Vous pouvez empêcher l'ouverture du sous-menu en appelant |
submenu-opened |
Se déclenche lorsque l'animation d'ouverture du sous-menu est terminée. |
submenu-close |
Se déclenche lorsque le sous-menu commence à se fermer. Vous pouvez empêcher la fermeture du sous-menu en appelant |
submenu-closed |
Se déclenche lorsque l'animation de fermeture du sous-menu est terminée. |
mdui-menu API
Propriétés
| Attribut HTML | Propriété JavaScript | Reflect | Type | Défaut |
|---|---|---|---|---|
selects | selects | 'single' | 'multiple' | - | |
État de sélection des éléments de menu. Par défaut, non sélectionnable. Les valeurs possibles incluent :
| ||||
value | value | string | string[] | - | |
Valeur de l'élément Remarque : L'attribut HTML de cette propriété est toujours une chaîne de caractères, et ne peut être défini comme valeur initiale via l'attribut HTML que lorsque | ||||
dense | dense | boolean | false | |
Si les éléments de menu doivent utiliser une disposition compacte | ||||
submenu-trigger | submenuTrigger | 'click' | 'hover' | 'focus' | 'manual' | string | 'click hover' | |
Mode de déclenchement du sous-menu. Prend en charge plusieurs valeurs, séparées par des espaces. Les valeurs possibles incluent :
| ||||
submenu-open-delay | submenuOpenDelay | number | 200 | |
Délai d'ouverture du sous-menu lors du déclenchement par survol de la souris, en millisecondes. | ||||
submenu-close-delay | submenuCloseDelay | number | 200 | |
Délai de fermeture du sous-menu lors du déclenchement par survol de la souris, en millisecondes. | ||||
Événements
| Nom |
|---|
change |
Se déclenche lorsque l'état de sélection d'un élément de menu change |
Slots
| Nom |
|---|
| Défaut |
Éléments de sous-menu ( |
Propriétés CSS personnalisées
| Nom |
|---|
--shape-corner |
Taille des coins arrondis du composant. Vous pouvez spécifier une valeur de pixel spécifique ; mais il est préférable de se référer au Design Tokens. |