Les menus sont divisés en menus simples et menus en cascade. Les menus simples conviennent aux appareils mobiles et aux tablettes, tandis que les menus en cascade conviennent aux ordinateurs de bureau.
Ajouter l'attribut disabled à un élément de menu peut désactiver cet élément.
Ajouter l'élément <li class="mdui-divider"></li> peut ajouter un séparateur.
<ul class="mdui-menu">
<li class="mdui-menu-item">
<a href="javascript:;" class="mdui-ripple">Refresh</a>
</li>
<li class="mdui-menu-item" disabled>
<a href="javascript:;">Help & feedback</a>
</li>
<li class="mdui-menu-item">
<a href="javascript:;" class="mdui-ripple">Settings</a>
</li>
<li class="mdui-divider"></li>
<li class="mdui-menu-item">
<a href="javascript:;" class="mdui-ripple">Sign out</a>
</li>
</ul><ul class="mdui-menu">
<li class="mdui-menu-item">
<a href="javascript:;" class="mdui-ripple">
<i class="mdui-menu-item-icon mdui-icon material-icons"
>remove_red_eye</i
>Preview
</a>
</li>
<li class="mdui-menu-item">
<a href="javascript:;" class="mdui-ripple">
<i class="mdui-menu-item-icon mdui-icon material-icons"
>file_download</i
>Download
</a>
</li>
<li class="mdui-divider"></li>
<li class="mdui-menu-item">
<a href="javascript:;" class="mdui-ripple">
<i class="mdui-menu-item-icon mdui-icon material-icons">delete</i
>Remove
</a>
</li>
<li class="mdui-menu-item">
<a href="javascript:;" class="mdui-ripple">
<i class="mdui-menu-item-icon"></i>Empty
</a>
</li>
</ul>Ajouter la classe .mdui-menu-cascade à l'élément <ul class="mdui-menu"> pour le transformer en menu en cascade adapté aux ordinateurs de bureau.
Des menus imbriqués peuvent être obtenus en ajoutant un autre menu à l'intérieur d'un élément <li class="mdui-menu-item"></li> ; cela prend théoriquement en charge un nombre illimité de niveaux d'imbrication.
L'élément <span class="mdui-menu-item-helper"></span> ajoute une courte description à un élément de menu.
L'élément <span class="mdui-menu-item-more"></span> ajoute une flèche orientée vers la droite à un élément de menu, utilisé sur les éléments de menu qui contiennent des sous-menus.
<ul class="mdui-menu mdui-menu-cascade">
<li class="mdui-menu-item">
<a href="javascript:;" class="mdui-ripple">
<i class="mdui-menu-item-icon mdui-icon material-icons"
>format_bold</i
>
Bold
<span class="mdui-menu-item-helper">Ctrl+B</span>
</a>
</li>
<li class="mdui-menu-item">
<a href="javascript:;" class="mdui-ripple">
<i class="mdui-menu-item-icon mdui-icon material-icons"
>format_italic</i
>
Italic
</a>
</li>
<li class="mdui-menu-item">
<a href="javascript:;" class="mdui-ripple">
<i class="mdui-menu-item-icon"></i>
Superscript
<span class="mdui-menu-item-helper">Ctrl+.</span>
</a>
</li>
<li class="mdui-divider"></li>
<li class="mdui-menu-item">
<a href="javascript:;" class="mdui-ripple">
Paragraph style
<span class="mdui-menu-item-more"></span>
</a>
<ul class="mdui-menu mdui-menu-cascade">
<li class="mdui-menu-item">
<a href="javascript:;" class="mdui-ripple">
<i class="mdui-menu-item-icon"></i>Single
</a>
</li>
<li class="mdui-menu-item">
<a href="javascript:;" class="mdui-ripple">
<i class="mdui-menu-item-icon mdui-icon material-icons"
>check</i
>1.15
</a>
</li>
<li class="mdui-menu-item">
<a href="javascript:;" class="mdui-ripple">
<i class="mdui-menu-item-icon"></i>Double
</a>
</li>
</ul>
</li>
</ul>Avec cette approche, aucun code JavaScript n'a besoin d'être écrit. Il suffit d'ajouter l'attribut mdui-menu="options" à un élément de contrôle (par exemple, un bouton). Lors de l'appel via des attributs personnalisés, un paramètre supplémentaire target est requis pour spécifier le menu contrôlé ; sa valeur doit être le sélecteur CSS du menu contrôlé.
Remarque : pour garantir un positionnement correct, le menu et l'élément qui le déclenche doivent être des éléments frères sous le même parent.
<button
class="mdui-btn mdui-color-theme-accent"
mdui-menu="{target: '#example-attr'}"
>
open
</button>
<ul class="mdui-menu" id="example-attr">
<li class="mdui-menu-item">
<a href="javascript:;" class="mdui-ripple">Refresh</a>
</li>
<li class="mdui-menu-item" disabled>
<a href="javascript:;">Help & feedback</a>
</li>
<li class="mdui-menu-item">
<a href="javascript:;" class="mdui-ripple">Settings</a>
</li>
<li class="mdui-divider"></li>
<li class="mdui-menu-item">
<a href="javascript:;" class="mdui-ripple">Sign out</a>
</li>
</ul><button
class="mdui-btn mdui-color-theme-accent"
mdui-menu="{target: '#demo-attr-cascade'}"
>
cascade menu
</button>
<ul class="mdui-menu mdui-menu-cascade" id="demo-attr-cascade">
<li class="mdui-menu-item">
<a href="javascript:;" class="mdui-ripple">
<i class="mdui-menu-item-icon mdui-icon material-icons"
>format_bold</i
>
Bold
<span class="mdui-menu-item-helper">Ctrl+B</span>
</a>
</li>
<li class="mdui-menu-item">
<a href="javascript:;" class="mdui-ripple">
<i class="mdui-menu-item-icon mdui-icon material-icons"
>format_italic</i
>
Italic
<span class="mdui-menu-item-helper">Ctrl+I</span>
</a>
</li>
<li class="mdui-menu-item">
<a href="javascript:;" class="mdui-ripple">
<i class="mdui-menu-item-icon"></i>
Superscript
<span class="mdui-menu-item-helper">Ctrl+.</span>
</a>
</li>
<li class="mdui-divider"></li>
<li class="mdui-menu-item">
<a href="javascript:;" class="mdui-ripple">
Paragraph style
<span class="mdui-menu-item-more"></span>
</a>
<ul class="mdui-menu mdui-menu-cascade">
<li class="mdui-menu-item">
<a href="javascript:;" class="mdui-ripple">
<i class="mdui-menu-item-icon"></i>Single
</a>
</li>
<li class="mdui-menu-item">
<a href="javascript:;" class="mdui-ripple">
<i class="mdui-menu-item-icon"></i>1.15
</a>
</li>
<li class="mdui-menu-item">
<a href="javascript:;" class="mdui-ripple">
<i class="mdui-menu-item-icon"></i>Double
</a>
</li>
<li class="mdui-menu-item">
<a href="javascript:;" class="mdui-ripple">
<i class="mdui-menu-item-icon mdui-icon material-icons"
>check</i
>Custom: 1.2
</a>
</li>
<li class="mdui-divider"></li>
<li class="mdui-menu-item">
<a href="javascript:;" class="mdui-ripple"
>Add space before paragraph</a
>
</li>
<li class="mdui-menu-item">
<a href="javascript:;" class="mdui-ripple"
>Add space after paragraph</a
>
</li>
<li class="mdui-divider"></li>
<li class="mdui-menu-item">
<a href="javascript:;" class="mdui-ripple">Custom spacing...</a>
</li>
</ul>
</li>
<li class="mdui-menu-item">
<a href="javascript:;" class="mdui-ripple">
Line spacing
<span class="mdui-menu-item-more"></span>
</a>
<ul class="mdui-menu mdui-menu-cascade">
<li class="mdui-menu-item">
<a href="javascript:;" class="mdui-ripple">
<i class="mdui-menu-item-icon"></i>
Single
</a>
</li>
<li class="mdui-menu-item">
<a href="javascript:;" class="mdui-ripple">
<i class="mdui-menu-item-icon"></i>
1.15
</a>
</li>
<li class="mdui-menu-item">
<a href="javascript:;" class="mdui-ripple">
<i class="mdui-menu-item-icon"></i>
Double
</a>
</li>
<li class="mdui-menu-item">
<a href="javascript:;" class="mdui-ripple">
<i class="mdui-menu-item-icon mdui-icon material-icons"
>check</i
>
Custom: 1.2
<span class="mdui-menu-item-more"></span>
</a>
<ul class="mdui-menu mdui-menu-cascade">
<li class="mdui-menu-item">
<a href="javascript:;" class="mdui-ripple">
Line spacing
<span class="mdui-menu-item-helper">1.2</span>
</a>
</li>
<li class="mdui-menu-item">
<a href="javascript:;" class="mdui-ripple">
Paragraph spacing before
<span class="mdui-menu-item-helper">1.2</span>
</a>
</li>
<li class="mdui-menu-item">
<a href="javascript:;" class="mdui-ripple">
Paragraph spacing after
<span class="mdui-menu-item-helper">1.5</span>
</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>Instancier le composant :
// anchorSelector représente le sélecteur CSS ou l'élément DOM de l'élément qui déclenche le menu
// menuSelector représente le sélecteur CSS ou l'élément DOM du menu
// options représente les paramètres de configuration du composant ; voir la liste des paramètres ci-dessous
var inst = new mdui.Menu(anchorSelector, menuSelector, options);| Nom | Type | Défaut | Description |
|---|---|---|---|
position | string | auto | La position du menu par rapport à l'élément qui le déclenche.
|
align | string | auto | L'alignement du menu avec l'élément qui le déclenche.
|
gutter | int | 16 | L'espacement minimum entre le menu et la bordure de la fenêtre, en px. |
fixed | boolean | false | La méthode de positionnement du menu
|
covered | boolean | auto | Si le menu recouvre l'élément qui le déclenche.
|
subMenuTrigger | string | hover | La méthode de déclenchement des sous-menus.
|
subMenuDelay | int | 200 | Le délai de déclenchement des sous-menus (en millisecondes) ; ce paramètre n'est valide que lorsque subMenuTrigger est défini sur hover. |
| Nom de méthode | Description |
|---|---|
open() | Ouvrir le menu. |
close() | Fermer le menu. |
toggle() | Basculer l'état ouvert du menu. |
| Nom de l'événement | Description | Cible | Paramètres |
|---|---|---|---|
open.mdui.menu | Déclenché lorsque le menu commence son animation d'ouverture. | <ul class="mdui-menu"></ul> | event._detail.inst : instance |
opened.mdui.menu | Déclenché lorsque le menu termine son animation d'ouverture. | ||
close.mdui.menu | Déclenché lorsque le menu commence son animation de fermeture. | ||
closed.mdui.menu | Déclenché lorsque le menu termine son animation de fermeture. |
| Nom de classe | Description |
|---|---|
.mdui-menu | Définir un composant de menu. |
.mdui-menu-cascade | Définir un menu en cascade. |
.mdui-menu-item | Définir un élément de menu. |
.mdui-menu-item-icon | Définir une icône de menu. |
.mdui-menu-item-helper | Définir le texte d'aide d'un élément de menu. |
.mdui-menu-item-more | La flèche orientée vers la droite pour les éléments de menu avec sous-menus. |