Menüs lassen sich in einfache Menüs und kaskadierende Menüs gliedern. Einfache Menüs eignen sich für Smartphones und Tablets, kaskadierende Menüs für Desktop-Geräte.
Durch Hinzufügen des Attributs disabled zu einem Menüpunkt kann dieser deaktiviert werden.
Durch Hinzufügen des <li class="mdui-divider"></li>-Elements kann ein Divider hinzugefügt werden.
<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>Durch Hinzufügen der Klasse .mdui-menu-cascade zum Element <ul class="mdui-menu"> wird das Menü zu einem kaskadierenden Menü für Desktop-Geräte.
Durch Hinzufügen eines weiteren Menüs innerhalb eines <li class="mdui-menu-item"></li>-Elements können Menüs verschachtelt werden. Theoretisch werden unendlich viele Verschachtelungsebenen unterstützt.
Das Element <span class="mdui-menu-item-helper"></span> fügt einem Menüpunkt eine kurze Beschreibung hinzu.
Das Element <span class="mdui-menu-item-more"></span> fügt einem Menüpunkt einen nach rechts weisenden Pfeil hinzu, der bei Menüpunkten mit Untermenüs verwendet wird.
<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>Bei dieser Methode ist kein JavaScript-Code erforderlich. Fügen Sie einfach das Attribut mdui-menu="options" zu einem steuernden Element (z. B. einem Button) hinzu. Bei Verwendung benutzerdefinierter Attribute ist ein zusätzlicher Parameter target erforderlich, um das zu steuernde Menü anzugeben. Sein Wert ist der CSS-Selektor des zu steuernden Menüs.
Hinweis: Damit das Menü korrekt positioniert werden kann, müssen sich das Menü und das Element, das das Menü auslöst, auf derselben Ebene unter demselben Elternelement befinden.
<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>Instanziierung der Komponente:
// anchorSelector stellt den CSS-Selektor oder das DOM-Element des Elements dar, das das Menü auslöst
// menuSelector stellt den CSS-Selektor oder das DOM-Element des Menüs dar
// options stellt die Konfigurationsparameter der Komponente dar, siehe die Parameterliste unten
var inst = new mdui.Menu(anchorSelector, menuSelector, options);| Parametername | Typ | Standardwert | Beschreibung |
|---|---|---|---|
position | string | auto | Die Position des Menüs im Verhältnis zu dem Element, das es auslöst.
|
align | string | auto | Die Ausrichtung des Menüs im Verhältnis zu dem Element, das es auslöst.
|
gutter | int | 16 | Wie viel Abstand das Menü mindestens zum Fensterrand halten soll, in px. |
fixed | boolean | false | Art der Positionierung des Menüs
|
covered | boolean | auto | Gibt an, ob das Menü das auslösende Element überdeckt.
|
subMenuTrigger | string | hover | Die Art und Weise, wie das Untermenü ausgelöst wird.
|
subMenuDelay | int | 200 | Auslöseverzögerung des Untermenüs (in Millisekunden), dieser Parameter ist nur wirksam, wenn subMenuTrigger: hover ist. |
| Methodenname | Beschreibung |
|---|---|
open() | Öffnet das Menü. |
close() | Schließt das Menü. |
toggle() | Schaltet den Öffnungszustand des Menüs um. |
| Ereignisname | Beschreibung | Ziel | Parameter |
|---|---|---|---|
open.mdui.menu | Das Ereignis wird ausgelöst, wenn das Menü mit der Öffnungsanimation beginnt. | <ul class="mdui-menu"></ul> | event._detail.inst: Instanz |
opened.mdui.menu | Das Ereignis wird ausgelöst, wenn das Menü die Öffnungsanimation beendet. | ||
close.mdui.menu | Das Ereignis wird ausgelöst, wenn das Menü mit der Schließanimation beginnt. | ||
closed.mdui.menu | Das Ereignis wird ausgelöst, wenn das Menü die Schließanimation beendet. |
| Klassenname | Beschreibung |
|---|---|
.mdui-menu | Definiert eine Menü-Komponente. |
.mdui-menu-cascade | Definiert kaskadierende Menüs. |
.mdui-menu-item | Definiert Menüpunkte. |
.mdui-menu-item-icon | Definiert Menü-Icons. |
.mdui-menu-item-helper | Definiert den Hilfetext des Menüs. |
.mdui-menu-item-more | Nach rechts weisender Pfeil für Menüpunkte mit Untermenüs. |