mdui의 내비게이션 드로어는 페이지의 왼쪽이나 오른쪽에서 슬라이드하여 나타나며, 한 페이지에 여러 개의 내비게이션 드로어를 가질 수 있습니다.
내비게이션 드로어는 모바일, 태블릿, 데스크톱 기기에서 조금씩 다르게 동작합니다. 브라우저 너비를 조절하여 이 페이지 왼쪽의 내비게이션 드로어 변화를 관찰할 수 있습니다:
.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 | 현재 내비게이션 드로어의 상태를 반환합니다. 네 가지 상태(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를 추가합니다. |