Menu
Menus display a list of choices on a temporary surface. They appear when users interact with a button, action, or other control.
Interactive Demo
Usage
<span style="position: relative; display: inline-block">
<md-button id="some-menu-btn">Menu with Anchor Set</md-button>
<md-menu id="some-menu" for="some-menu-btn">
<md-menu-item id="item-new-text-file">New Text File</md-menu-item>
<md-menu-item id="item-new-file">New File...</md-menu-item>
<md-menu-item id="item-new-window">New Window</md-menu-item>
<md-divider></md-divider>
<md-menu-item id="item-open-file">Open File...</md-menu-item>
<md-menu-item id="item-open-folder">Open Folder...</md-menu-item>
<md-divider></md-divider>
<md-menu-item id="item-save">Save</md-menu-item>
<md-menu-item id="item-save-as">Save As...</md-menu-item>
</md-menu>
</span>
<label style="display: block">event:
<input type="text" readonly id="some-menu-fires" />
</label>
<script>
const menuButton = document.getElementById('some-menu-btn');
const menuOutput = document.getElementById('some-menu-fires');
const menu = document.getElementById('some-menu');
menuButton.addEventListener('click', () => {
menu.open = !menu.open;
});
menu.addEventListener('select', (e) => {
menuOutput.value = `select: { index: ${e.detail.index}, item: #${e.detail.item.id}\n}`;
});
</script>
Properties
| Name | Type | Default | Description |
|---|
open | Boolean | false | Whether the menu is open (inherited from Menu). |
quick | Boolean | false | Whether to use quick mode for menu opening (inherited from Menu). |
align | Placement | 'bottom-start' | The alignment of the menu relative to the anchor (inherited from Menu). |
alignStrategy | Strategy | 'absolute' | The positioning strategy for the menu (inherited from Menu). |
offset | Number | 0 | The offset distance for the menu (inherited from Menu). |
keepOpenBlur | Boolean | false | Whether to keep the menu open when focus is lost (inherited from Menu). |
keepOpenClickItem | Boolean | false | Whether to keep the menu open when an item is clicked (inherited from Menu). |
keepOpenClickOutside | Boolean | false | Whether to keep the menu open when clicking outside (inherited from Menu). |
Methods
| Name | Description |
|---|
show() | Opens the menu. |
hide() | Closes the menu. |
Events
| Name | Type | Description |
|---|
select | CustomEvent<{index: number, item: HTMLElement}> | Dispatched when a menu item is selected. The detail property contains the selected item's index and element. |