ion-menu
メニューコンポーネントは、現在のビューの側面からスライドインするナビゲーションドロワーです。 デフォルトでは、開始側を使用するため、LTRの場合は左から、RTLの場合は右からスライドインしますが、側面はオーバーライドできます。 メニューはモードによって表示方法が異なりますが、表示タイプは利用可能なメニュータイプのいずれかに変更できます。
メニュー要素は、ルートコンテンツ要素の兄弟要素である必要があります。 コンテンツには任意の数のメニューを添付できます。 これらはテンプレートから、または `MenuController` を使用してプログラムで制御できます。
基本的な使い方
メニューの切り替え
メニュー切り替えコンポーネントを使用すると、メニューを開閉できるカスタムボタンを作成できます。
メニューの種類
`type` プロパティを使用すると、アプリケーションでのメニューの表示方法をカスタマイズできます。
メニューの側面
メニューはデフォルトで ` "start" ` 側に表示されます。 左から右への方向を使用するアプリでは、これは左側になり、右から左へのアプリでは、これは右側になります。 メニューは ` "end" ` 側に表示されるように設定することもでき、これは ` "start" ` の反対です。
アプリで両側にメニューが必要な場合は、`MenuController` の `open` メソッドに `side` 値を渡すことによってメニューを開くことができます。 側面が指定されていない場合は、` "start" ` 側のメニューが開きます。 `MenuController` を使用した例については、以下の複数のメニューセクションを参照してください。
複数のメニュー
同じ側に複数のメニューが存在する場合、側面ではなくIDで参照する必要があります。 そうしないと、間違ったメニューがアクティブになる可能性があります。
テーマ設定
CSSシャドウパーツ
インターフェース
MenuCustomEvent
必須ではありませんが、このインターフェースは、このコンポーネントから発行されたIonicイベントでより強力な型指定を行うために、`CustomEvent` インターフェースの代わりに使用できます。
interface MenuCustomEvent<T = any> extends CustomEvent {
detail: T;
target: HTMLIonMenuElement;
}
プロパティ
contentId
説明 | メインコンテンツの `id` です。 ルータを使用する場合、これは通常 `ion-router-outlet` です。 ルータを使用しない場合、これは通常、メインビューの `ion-content` です。 これは、`ion-menu` 内の `ion-content` のIDではありません。 |
属性 | content-id |
タイプ | string | undefined |
デフォルト | undefined |
disabled
説明 | `true` の場合、メニューはdisabled(無効)になります。 |
属性 | disabled |
タイプ | boolean |
デフォルト | false |
maxEdgeStart
説明 | メニューを開くためのドラッグのエッジしきい値。 この値を超えるドラッグ/スワイプが発生した場合、メニューはトリガーされません。 |
属性 | max-edge-start |
タイプ | number |
デフォルト | 50 |
undefined
説明 | メニューのID。 |
属性 | menu-id |
タイプ | string | undefined |
デフォルト | undefined |
side
説明 | メニューをビューのどちら側に配置するか。 |
属性 | side |
タイプ | "end" | "start" |
デフォルト | 'start' |
swipeGesture
説明 | `true` の場合、メニューのスワイプが有効になります。 |
属性 | swipe-gesture |
タイプ | boolean |
デフォルト | true |
type
説明 | メニューの表示タイプ。 利用可能なオプション: ` "overlay" `、 ` "reveal" `、 ` "push" `。 |
属性 | type |
タイプ | "overlay" | "push" | "reveal" | undefined |
デフォルト | undefined |
イベント
名前 | 説明 | バブル |
---|---|---|
ionDidClose | メニューが閉じたときに発行されます。 | true |
ionDidOpen | メニューが開いたときに発行されます。 | true |
ionWillClose | メニューが閉じられる直前に発行されます。 | true |
ionWillOpen | メニューが開かれる直前に発行されます。 | true |
メソッド
close
説明 | メニューを閉じます。 メニューがすでに閉じているか、閉じることができない場合は、`false` を返します。 |
署名 | close(animated?: boolean, role?: string) => Promise<boolean> |
isActive
説明 | メニューがアクティブな場合は `true` を返します。 メニューは、開閉できる場合、つまり有効になっていて `ion-split-pane` の一部ではない場合にアクティブになります。 |
署名 | isActive() => Promise<boolean> |
isOpen
説明 | メニューが開いている場合は `true` を返します。 |
署名 | isOpen() => Promise<boolean> |
open
説明 | メニューを開きます。 メニューがすでに開いているか、開くことができない場合は、`false` を返します。 |
署名 | open(animated?: boolean) => Promise<boolean> |
setOpen
説明 | ボタンを開閉します。 操作が正常に完了できない場合は、`false` を返します。 |
署名 | setOpen(shouldOpen: boolean, animated?: boolean, role?: string) => Promise<boolean> |
toggle
説明 | メニューを切り替えます。 メニューがすでに開いている場合は、閉じようとします。そうでない場合は、開こうとします。 操作が正常に完了できない場合は、`false` を返します。 |
署名 | toggle(animated?: boolean) => Promise<boolean> |
CSSシャドウパーツ
名前 | 説明 |
---|---|
backdrop | メニューが開いているときにメインコンテンツの上に表示されるバックドロップ。 |
container | メニューコンテンツのコンテナ。 |
CSSカスタムプロパティ
- iOS
- MD
名前 | 説明 |
---|---|
--background | メニューの背景 |
--height | メニューの高さ |
--max-height | メニューの最大高さ |
--max-width | メニューの最大幅 |
--min-height | メニューの最小高さ |
--min-width | メニューの最小幅 |
--width | メニューの幅 |
名前 | 説明 |
---|---|
--background | メニューの背景 |
--height | メニューの高さ |
--max-height | メニューの最大高さ |
--max-width | メニューの最大幅 |
--min-height | メニューの最小高さ |
--min-width | メニューの最小幅 |
--width | メニューの幅 |
スロット
このコンポーネントで使用可能なスロットはありません。