Dialog다이얼로그
컴포넌트 가져오기:
import 'mdui/components/dialog.js';
컴포넌트의 TypeScript 타입 가져오기:
import type { Dialog } from 'mdui/components/dialog.js';
사용 예시:
Dialog
닫기
대화상자 열기
<mdui-dialog class="example-dialog">
Dialog
<mdui-button>닫기</mdui-button>
</mdui-dialog>
<mdui-button>대화상자 열기</mdui-button>
<script>
const dialog = document.querySelector(".example-dialog");
const openButton = dialog.nextElementSibling;
const closeButton = dialog.querySelector("mdui-button");
openButton.addEventListener("click", () => dialog.open = true);
closeButton.addEventListener("click", () => dialog.open = false);
</script>
close-on-overlay-click 속성을 추가하면 오버레이 레이어를 클릭할 때 대화상자가 닫힙니다.
Dialog
대화상자 열기
<mdui-dialog close-on-overlay-click class="example-overlay">Dialog</mdui-dialog>
<mdui-button>대화상자 열기</mdui-button>
<script>
const dialog = document.querySelector(".example-overlay");
const openButton = dialog.nextElementSibling;
openButton.addEventListener("click", () => dialog.open = true);
</script>
소스
close-on-esc 속성을 추가하면 ESC 키를 누를 때 대화상자가 닫힙니다.
Dialog
대화상자 열기
<mdui-dialog
close-on-esc
close-on-overlay-click
class="example-esc"
>Dialog</mdui-dialog>
<mdui-button>대화상자 열기</mdui-button>
<script>
const dialog = document.querySelector(".example-esc");
const openButton = dialog.nextElementSibling;
openButton.addEventListener("click", () => dialog.open = true);
</script>
소스
fullscreen 속성을 추가하면 대화상자가 전체 화면으로 표시됩니다.
Dialog
닫기
대화상자 열기
<mdui-dialog fullscreen class="example-fullscreen">
Dialog
<mdui-button>닫기</mdui-button>
</mdui-dialog>
<mdui-button>대화상자 열기</mdui-button>
<script>
const dialog = document.querySelector(".example-fullscreen");
const openButton = dialog.nextElementSibling;
const closeButton = dialog.querySelector("mdui-button");
openButton.addEventListener("click", () => dialog.open = true);
closeButton.addEventListener("click", () => dialog.open = false);
</script>
소스
icon 속성을 설정하면 대화상자 상단에 Material Icons 아이콘이 추가됩니다.
Dialog
대화상자 열기
<mdui-dialog
icon="restart_alt"
close-on-overlay-click
class="example-icon"
>Dialog</mdui-dialog>
<mdui-button>대화상자 열기</mdui-button>
<script>
const dialog = document.querySelector(".example-icon");
const openButton = dialog.nextElementSibling;
openButton.addEventListener("click", () => dialog.open = true);
</script>
소스icon 슬롯을 통해 대화상자 상단에 아이콘 요소를 추가할 수도 있습니다.
Dialog
대화상자 열기
<mdui-dialog close-on-overlay-click class="example-icon-slot">
Dialog
<mdui-icon slot="icon" name="restart_alt"></mdui-icon>
</mdui-dialog>
<mdui-button>대화상자 열기</mdui-button>
<script>
const dialog = document.querySelector(".example-icon-slot");
const openButton = dialog.nextElementSibling;
openButton.addEventListener("click", () => dialog.open = true);
</script>
소스
headline 및 description 속성으로 대화상자의 제목과 설명을 설정합니다.
대화상자 열기
<mdui-dialog
headline="Delete selected images?"
description="Images will be permanently removed from your account and all synced devices."
close-on-overlay-click
class="example-headline"
></mdui-dialog>
<mdui-button>대화상자 열기</mdui-button>
<script>
const dialog = document.querySelector(".example-headline");
const openButton = dialog.nextElementSibling;
openButton.addEventListener("click", () => dialog.open = true);
</script>
소스headline 및 description 슬롯을 통해 대화상자의 제목 요소와 설명 요소를 설정할 수도 있습니다.
Delete selected images?
Images will be permanently removed from your account and all synced devices.
대화상자 열기
<mdui-dialog close-on-overlay-click class="example-headline-slot">
<span slot="headline">Delete selected images?</span>
<span slot="description">Images will be permanently removed from your account and all synced devices.</span>
</mdui-dialog>
<mdui-button>대화상자 열기</mdui-button>
<script>
const dialog = document.querySelector(".example-headline-slot");
const openButton = dialog.nextElementSibling;
openButton.addEventListener("click", () => dialog.open = true);
</script>
소스
action 슬롯을 통해 하단 작업 버튼을 추가할 수 있습니다.
취소
삭제
대화상자 열기
<mdui-dialog
close-on-overlay-click
headline="Delete selected images?"
class="example-action"
>
<mdui-button slot="action" variant="text">취소</mdui-button>
<mdui-button slot="action" variant="tonal">삭제</mdui-button>
</mdui-dialog>
<mdui-button>대화상자 열기</mdui-button>
<script>
const dialog = document.querySelector(".example-action");
const openButton = dialog.nextElementSibling;
openButton.addEventListener("click", () => dialog.open = true);
</script>
소스stacked-actions 속성을 추가하면 하단 작업 버튼을 세로로 배치합니다.
Turn on speed boost
No thanks
대화상자 열기
<mdui-dialog
stacked-actions
close-on-overlay-click
headline="Use location service?"
class="example-stacked-actions"
>
<mdui-button slot="action" variant="text">Turn on speed boost</mdui-button>
<mdui-button slot="action" variant="text">No thanks</mdui-button>
</mdui-dialog>
<mdui-button>대화상자 열기</mdui-button>
<script>
const dialog = document.querySelector(".example-stacked-actions");
const openButton = dialog.nextElementSibling;
openButton.addEventListener("click", () => dialog.open = true);
</script>
소스
header 슬롯을 통해 대화상자 상단 내용을 설정할 수 있습니다.
대화상자 열기
<mdui-dialog close-on-overlay-click class="example-header">
<mdui-top-app-bar slot="header">
<mdui-button-icon icon="close"></mdui-button-icon>
<mdui-top-app-bar-title>Title</mdui-top-app-bar-title>
<mdui-button variant="text">Save</mdui-button>
</mdui-top-app-bar>
<div style="height: 100px"></div>
</mdui-dialog>
<mdui-button>대화상자 열기</mdui-button>
<script>
const dialog = document.querySelector(".example-header");
const openButton = dialog.nextElementSibling;
openButton.addEventListener("click", () => dialog.open = true);
</script>
소스| 이름 |
|---|
open |
다이얼로그 열림이 시작될 때 발생합니다. event.preventDefault()를 호출하여 다이얼로그 열림을 막을 수 있습니다.
|
opened |
다이얼로그 열림 애니메이션이 완료되면 발생합니다.
|
close |
다이얼로그 닫힘이 시작될 때 발생합니다. event.preventDefault()를 호출하여 다이얼로그 닫힘을 막을 수 있습니다.
|
closed |
다이얼로그 닫힘 애니메이션이 완료되면 발생합니다.
|
overlay-click |
오버레이를 클릭할 때 발생합니다.
|