MDUI文件
複製 llms.txt 連結複製 llms-full.txt 連結以 Markdown 格式檢視此頁與 ChatGPT 討論此頁內容與 ChatGPT 討論專案完整文件
預設顏色
自選顏色
從桌布擷取顏色
請選擇一張桌布
開發指南
AI 輔助開發
樣式
與框架整合
元件
Avatar 頭像Badge 徽章BottomAppBar 底部應用程式列Button 按鈕ButtonIcon 圖示按鈕Card 卡片Checkbox 核取方塊Chip 標籤CircularProgress 環形進度條Collapse 收合區塊Dialog 對話框Divider 分隔線Dropdown 下拉元件Fab 浮動動作按鈕Icon 圖示Layout 版面配置LinearProgress 線性進度條List 清單Menu 選單NavigationBar 底部導覽列NavigationDrawer 導覽抽屜NavigationRail 側邊導覽列Radio 單選按鈕RangeSlider 範圍滑桿Select 選擇框SegmentedButton 分段按鈕Slider 滑桿Snackbar 消息條Switch 切換開關Tabs 分頁TextField 文字欄位Tooltip 工具提示TopAppBar 頂部應用程式列
函式
獨立程式庫

Dialog對話框

對話框用來在使用者的操作流程中提供重要提示。

除了直接使用該元件外,mdui 還提供了四個函式:mdui.dialogmdui.alertmdui.confirmmdui.prompt。這些函式可以簡化 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 屬性,點擊遮罩層時即會關閉對話框。

按下 ESC 鍵關閉

加上 close-on-esc 屬性,按下 ESC 鍵時即會關閉對話框。

全螢幕

加上 fullscreen 屬性,對話框會以全螢幕顯示。

圖示

設定 icon 屬性,對話框上方會加入 Material Icons 圖示。

也可以透過 icon slot 在對話框上方加入圖示元素。

標題與描述

你可以透過 headlinedescription 屬性設定對話框的標題和描述。

也可以透過 headlinedescription slot 來設定對話框的標題元素和描述元素。

底部操作按鈕

你可以透過 action slot 加入底部操作按鈕。

加上 stacked-actions 屬性,可使底部操作按鈕垂直排列。

頂部內容

你可以透過 header slot 設定對話框頂部內容。

API

屬性

HTML 屬性JavaScript 屬性Reflect型別預設值
iconiconstring-

頂部的 Material Icons 圖示名。也可以透過 slot="icon" 設定

headlineheadlinestring-

標題。也可以透過 slot="headline" 設定

descriptiondescriptionstring-

標題下方的文字。也可以透過 slot="description" 設定

openopenbooleanfalse

是否開啟對話框

fullscreenfullscreenbooleanfalse

是否全螢幕顯示對話框

close-on-esccloseOnEscbooleanfalse

是否允許按下 ESC 鍵關閉對話框

close-on-overlay-clickcloseOnOverlayClickbooleanfalse

是否允許點擊遮罩層關閉對話框

stacked-actionsstackedActionsbooleanfalse

是否垂直排列底部操作按鈕

事件

名稱
open

對話框開始開啟時觸發。可以透過呼叫 event.preventDefault() 阻止對話框開啟

opened

對話框開啟動畫完成後觸發

close

對話框開始關閉時觸發。可以透過呼叫 event.preventDefault() 阻止對話框關閉

closed

對話框關閉動畫完成後觸發

overlay-click

點擊遮罩層時觸發

Slots

名稱
header

頂部元素,預設包含 icon slot 和 headline slot

icon

頂部圖示

headline

頂部標題

description

標題下方的文字

預設

對話框主體內容

action

底部操作欄中的元素

CSS Parts

名稱
overlay

遮罩層

panel

對話框容器

header

對話框 header 部分,包含 icon 和 headline

icon

頂部圖示,位於 header 中

headline

頂部標題,位於 header 中

body

對話框 body 部分

description

副文字部分,位於 body 中

action

底部操作按鈕

CSS 自訂屬性

名稱
--shape-corner

元件的圓角大小。可以指定一個具體的像素值;但更推薦引用設計令牌

--z-index

元件的 CSS z-index

本頁目錄