mdui のナビゲーションドロワーは、ページの左側または右側からスライドして表示されます。1 つのページに複数のナビゲーションドロワーを持たせることができます。
ナビゲーションドロワーは、スマートフォン、タブレット、デスクトップデバイスで動作が少し異なります。ブラウザの幅を変更して、このページの左側にあるナビゲーションドロワーの変化を確認できます:
.mdui-drawer-full-height を追加すると、ナビゲーションドロワーの高さを 100% にできます。このとき、ナビゲーションドロワーがアプリバーを覆う可能性があるため、アプリバーにクラス .mdui-appbar-inset を追加して、ナビゲーションドロワーに覆われないようにすることができます。.mdui-color-[color] を追加すると、ナビゲーションドロワーの背景色を設定し、シャドウを追加できます。.mdui-drawer-open を追加すると、すべてのデバイスでデフォルトで表示されるようになります。クラス .mdui-drawer-close を追加すると、すべてのデバイスでデフォルトで非表示になります。overlay パラメータを true に設定すると、ナビゲーションドロワーを開くときにオーバーレイを表示できます。オーバーレイを表示するように設定した場合は、.mdui-drawer-close クラスを追加して、ナビゲーションドロワーをデフォルトで非表示にする必要があります。mdui.mutation() を呼び出す必要があります)<!-- mdui-drawer-body-left クラスは body に padding-left を追加します。左側にデフォルトで開いているナビゲーションドロワーがある場合は、このクラスを追加する必要があります。 -->
<!-- mdui-drawer-body-right クラスは body に padding-right を追加します。右側にデフォルトで開いているナビゲーションドロワーがある場合は、このクラスを追加する必要があります。 -->
<body class="mdui-drawer-body-left mdui-drawer-body-right">
<!-- デフォルトのナビゲーションドロワーは左側です。 -->
<div class="mdui-drawer">
... drawer content ...
</div>
<!-- ナビゲーションドロワーを右側にするには、クラス mdui-drawer-right を追加する必要があります。 -->
<div class="mdui-drawer mdui-drawer-right">
... drawer content ...
</div>
</body>この方法では JavaScript コードを記述する必要はありません。制御する要素(ボタンなど)に mdui-drawer="options" 属性を追加するだけで有効になります。カスタム属性を使用して呼び出す場合は、制御対象のナビゲーションドロワーを指定するための target パラメータを別途追加する必要があります。値は制御対象のナビゲーションドロワーの CSS セレクターです。
<body class="mdui-drawer-body-right">
<button class="mdui-btn" mdui-drawer="{target: '#left-drawer'}">open left drawer</button>
<div class="mdui-drawer" id="left-drawer">
... left drawer content ...
<button class="mdui-btn" mdui-drawer-close>close</button>
</div>
</body>ナビゲーションドロワー内の要素にいくつかの属性を追加して、イベントをバインドできます。これらの属性は、JavaScript による呼び出し方法でも使用できます。
| 属性 | 説明 |
|---|---|
mdui-drawer-close | この要素をクリックすると close.mdui.drawer イベントが発生し、ナビゲーションドロワーが閉じます。 |
// selector はナビゲーションドロワーの CSS セレクターまたは DOM 要素です。
// options は構成パラメータです。以下のパラメータリストを参照してください。
var inst = new mdui.Drawer(selector, options);| パラメータ名 | タイプ | デフォルト値 | 説明 |
|---|---|---|---|
overlay | boolean | false | ナビゲーションドロワーを開くときにオーバーレイが表示されるかどうか。このパラメータは中型スクリーン以上のデバイスにのみ有効です。超小型および小型スクリーンデバイスでは常にオーバーレイが表示されます。 |
swipe | boolean | false | スワイプジェスチャを有効にするかどうか。 |
| メソッド名 | 説明 |
|---|---|
open | ナビゲーションドロワーを表示します。 |
close | ナビゲーションドロワーを非表示にします。 |
toggle | ナビゲーションドロワーの表示状態を切り替えます。 |
getState | 現在のナビゲーションドロワーの状態を返します。合計 4 つの状態(opening、opened、closing、closed)。 |
| イベント名 | 説明 | ターゲット | パラメータ |
|---|---|---|---|
open.mdui.drawer | ナビゲーションドロワーが開くアニメーションを開始したときにイベントがトリガーされます。 | <div class="mdui-drawer"></div> | event._detail.inst:インスタンス |
opened.mdui.drawer | ナビゲーションドロワーが開くアニメーションを完了したときにイベントがトリガーされます。 | ||
close.mdui.drawer | ナビゲーションドロワーが閉じるアニメーションを開始したときにイベントがトリガーされます。 | ||
closed.mdui.drawer | ナビゲーションドロワーが閉じるアニメーションを完了したときにイベントがトリガーされます。 |
| クラス名 | 説明 |
|---|---|
.mdui-drawer | ナビゲーションドロワーを定義します。 |
.mdui-drawer-right | ページの右側にあるナビゲーションドロワー。 |
.mdui-drawer-full-height | ナビゲーションドロワーの高さを 100% にします。 |
.mdui-drawer-open | ナビゲーションドロワーをデフォルトで表示状態にします。 |
.mdui-drawer-close | ナビゲーションドロワーをデフォルトで非表示状態にします。 |
.mdui-drawer-body-left | body に padding-left を追加します。 |
.mdui-drawer-body-right | body に padding-right を追加します。 |