樣式
完整 HTML 結構
這個範例包含了所有可以包含的 HTML 元素。
範例
<div class="mdui-panel" mdui-panel>
<div class="mdui-panel-item">
<div class="mdui-panel-item-header">
<div class="mdui-panel-item-title">Trip name</div>
<div class="mdui-panel-item-summary">Carribean cruise</div>
<i class="mdui-panel-item-arrow mdui-icon material-icons">keyboard_arrow_down</i>
</div>
<div class="mdui-panel-item-body">
<p>First content</p>
<p>First content</p>
<p>First content</p>
<p>First content</p>
<p>First content</p>
<p>First content</p>
<div class="mdui-panel-item-actions">
<button class="mdui-btn mdui-ripple" mdui-panel-item-close>cancel</button>
<button class="mdui-btn mdui-ripple">save</button>
</div>
</div>
</div>
<div class="mdui-panel-item">
<div class="mdui-panel-item-header">
<div class="mdui-panel-item-title">Location</div>
<i class="mdui-panel-item-arrow mdui-icon material-icons">keyboard_arrow_down</i>
</div>
<div class="mdui-panel-item-body">
<p>Second content</p>
<p>Second content</p>
<p>Second content</p>
<p>Second content</p>
<p>Second content</p>
<p>Second content</p>
<div class="mdui-panel-item-actions">
<button class="mdui-btn mdui-ripple" mdui-panel-item-close>cancel</button>
<button class="mdui-btn mdui-ripple">save</button>
</div>
</div>
</div>
<div class="mdui-panel-item">
<div class="mdui-panel-item-header">
<div class="mdui-panel-item-title">Start and end dates</div>
<div class="mdui-panel-item-summary">Start date: Feb 29, 2016</div>
<div class="mdui-panel-item-summary">End date: Not set</div>
<i class="mdui-panel-item-arrow mdui-icon material-icons">keyboard_arrow_down</i>
</div>
<div class="mdui-panel-item-body">
<p>Third content</p>
<p>Third content</p>
<p>Third content</p>
<p>Third content</p>
<p>Third content</p>
<p>Third content</p>
<div class="mdui-panel-item-actions">
<button class="mdui-btn mdui-ripple" mdui-panel-item-close>cancel</button>
<button class="mdui-btn mdui-ripple">save</button>
</div>
</div>
</div>
</div>
最簡 HTML 結構
上例中的部分元素並不是必須的,下面的範例只包含必須的 HTML 元素。
範例
<div class="mdui-panel" mdui-panel>
<div class="mdui-panel-item">
<div class="mdui-panel-item-header">First</div>
<div class="mdui-panel-item-body">
<p>First content</p>
<p>First content</p>
<p>First content</p>
<p>First content</p>
<p>First content</p>
<p>First content</p>
</div>
</div>
<div class="mdui-panel-item">
<div class="mdui-panel-item-header">Second</div>
<div class="mdui-panel-item-body">
<p>Second content</p>
<p>Second content</p>
<p>Second content</p>
<p>Second content</p>
<p>Second content</p>
<p>Second content</p>
</div>
</div>
<div class="mdui-panel-item">
<div class="mdui-panel-item-header">Third</div>
<div class="mdui-panel-item-body">
<p>Third content</p>
<p>Third content</p>
<p>Third content</p>
<p>Third content</p>
<p>Third content</p>
<p>Third content</p>
</div>
</div>
</div>
預設開啟的項目
在 <div class="mdui-panel-item"></div> 元素上加上類別 .mdui-panel-item-open 即可使該項目處於預設開啟狀態。
範例
<div class="mdui-panel" mdui-panel>
<div class="mdui-panel-item">
<div class="mdui-panel-item-header">First</div>
<div class="mdui-panel-item-body">
<p>First content</p>
<p>First content</p>
<p>First content</p>
<p>First content</p>
<p>First content</p>
<p>First content</p>
</div>
</div>
<div class="mdui-panel-item mdui-panel-item-open">
<div class="mdui-panel-item-header">Second</div>
<div class="mdui-panel-item-body">
<p>Second content</p>
<p>Second content</p>
<p>Second content</p>
<p>Second content</p>
<p>Second content</p>
<p>Second content</p>
</div>
</div>
<div class="mdui-panel-item">
<div class="mdui-panel-item-header">Third</div>
<div class="mdui-panel-item-body">
<p>Third content</p>
<p>Third content</p>
<p>Third content</p>
<p>Third content</p>
<p>Third content</p>
<p>Third content</p>
</div>
</div>
</div>
移除項目間距
在 <div class="mdui-panel"></div> 元素上加上類別 .mdui-panel-gapless 即可移除開啟的項目和其他項目之間的間距。
範例
<div class="mdui-panel mdui-panel-gapless" mdui-panel>
<div class="mdui-panel-item">
<div class="mdui-panel-item-header">First</div>
<div class="mdui-panel-item-body">
<p>First content</p>
<p>First content</p>
<p>First content</p>
<p>First content</p>
<p>First content</p>
<p>First content</p>
</div>
</div>
<div class="mdui-panel-item">
<div class="mdui-panel-item-header">Second</div>
<div class="mdui-panel-item-body">
<p>Second content</p>
<p>Second content</p>
<p>Second content</p>
<p>Second content</p>
<p>Second content</p>
<p>Second content</p>
</div>
</div>
<div class="mdui-panel-item">
<div class="mdui-panel-item-header">Third</div>
<div class="mdui-panel-item-body">
<p>Third content</p>
<p>Third content</p>
<p>Third content</p>
<p>Third content</p>
<p>Third content</p>
<p>Third content</p>
</div>
</div>
</div>
彈出面板
在 <div class="mdui-panel"></div> 元素上加上類別 .mdui-panel-popout 即可使開啟的項目有彈出效果。
範例
<div class="mdui-panel mdui-panel-popout" mdui-panel>
<div class="mdui-panel-item">
<div class="mdui-panel-item-header">First</div>
<div class="mdui-panel-item-body">
<p>First content</p>
<p>First content</p>
<p>First content</p>
<p>First content</p>
<p>First content</p>
<p>First content</p>
</div>
</div>
<div class="mdui-panel-item">
<div class="mdui-panel-item-header">Second</div>
<div class="mdui-panel-item-body">
<p>Second content</p>
<p>Second content</p>
<p>Second content</p>
<p>Second content</p>
<p>Second content</p>
<p>Second content</p>
</div>
</div>
<div class="mdui-panel-item">
<div class="mdui-panel-item-header">Third</div>
<div class="mdui-panel-item-body">
<p>Third content</p>
<p>Third content</p>
<p>Third content</p>
<p>Third content</p>
<p>Third content</p>
<p>Third content</p>
</div>
</div>
</div>
範例
<div class="mdui-panel" mdui-panel>
<div class="mdui-panel-item">
<div class="mdui-panel-item-header">First</div>
<div class="mdui-panel-item-body">
<p>First content</p>
<p>First content</p>
<p>First content</p>
<!-- 第一個巢狀的收合區塊 -->
<div class="mdui-panel" mdui-panel>
<div class="mdui-panel-item">
<div class="mdui-panel-item-header">First</div>
<div class="mdui-panel-item-body">
<p>First content</p>
<p>First content</p>
<p>First content</p>
<!-- 第二個巢狀的收合區塊 -->
<div class="mdui-panel" mdui-panel>
<div class="mdui-panel-item">
<div class="mdui-panel-item-header">First</div>
<div class="mdui-panel-item-body">
<p>First content</p>
<p>First content</p>
<p>First content</p>
</div>
</div>
<div class="mdui-panel-item">
<div class="mdui-panel-item-header">Second</div>
<div class="mdui-panel-item-body">
<p>Second content</p>
<p>Second content</p>
<p>Second content</p>
</div>
</div>
</div>
</div>
</div>
<div class="mdui-panel-item">
<div class="mdui-panel-item-header">Second</div>
<div class="mdui-panel-item-body">
<p>Second content</p>
<p>Second content</p>
<p>Second content</p>
</div>
</div>
</div>
</div>
</div>
<div class="mdui-panel-item">
<div class="mdui-panel-item-header">Second</div>
<div class="mdui-panel-item-body">
<p>Second content</p>
<p>Second content</p>
<p>Second content</p>
</div>
</div>
<div class="mdui-panel-item">
<div class="mdui-panel-item-header">Third</div>
<div class="mdui-panel-item-body">
<p>Third content</p>
<p>Third content</p>
<p>Third content</p>
</div>
</div>
</div>
呼叫方式
透過自訂屬性呼叫
使用該方式無需編寫 JavaScript 程式碼。只需在 <div class="mdui-panel"></div> 元素上加上 mdui-panel="options" 屬性即可啟用該外掛。
若元件是動態產生的,則需要呼叫 mdui.mutation() 進行初始化。
範例
<div class="mdui-panel" mdui-panel="{accordion: true}">
<div class="mdui-panel-item">
<div class="mdui-panel-item-header">First</div>
<div class="mdui-panel-item-body">
<p>First content</p>
<p>First content</p>
<p>First content</p>
<p>First content</p>
<p>First content</p>
<p>First content</p>
</div>
</div>
<div class="mdui-panel-item">
<div class="mdui-panel-item-header">Second</div>
<div class="mdui-panel-item-body">
<p>Second content</p>
<p>Second content</p>
<p>Second content</p>
<p>Second content</p>
<p>Second content</p>
<p>Second content</p>
</div>
</div>
<div class="mdui-panel-item">
<div class="mdui-panel-item-header">Third</div>
<div class="mdui-panel-item-body">
<p>Third content</p>
<p>Third content</p>
<p>Third content</p>
<p>Third content</p>
<p>Third content</p>
<p>Third content</p>
</div>
</div>
</div>
在收合區塊內的元素上可以加上一些屬性來綁定事件,這些屬性在使用 JavaScript 呼叫方式時也可以使用。
| 屬性 | 說明 |
|---|
mdui-panel-item-close | 點擊該元素會觸發 close.mdui.panel 事件,並關閉該元素所在的項目。 |
透過 JavaScript 呼叫
實例化元件:
// selector 為 .mdui-panel 元素的 CSS 選取器或 DOM 元素
// options 為外掛的參數,見下面的參數清單
var inst = new mdui.Panel(selector, options);
執行參數
| 參數名稱 | 類型 | 預設值 | 說明 |
|---|
accordion | boolean | false | 是否啟用手風琴效果。 - 為
true 時,最多只能有一個項目處於開啟狀態,開啟一個項目時會關閉其他項目。 - 為
false 時,可同時開啟多個項目。
|
方法
| 方法名稱 | 說明 |
|---|
open(item) | 開啟項目。 item:項目的索引值、或者 DOM 元素、或者 CSS 選取器。
|
close(item) | 關閉項目。 item:項目的索引值、或者 DOM 元素、或者 CSS 選取器。
|
toggle(item) | 切換項目狀態。 item:項目的索引值、或者 DOM 元素、或者 CSS 選取器。
|
openAll() | 開啟所有項目。該方法僅在 accordion 為 false 時有效。 |
closeAll() | 關閉所有項目。 |
事件
| 事件名稱 | 說明 | 目標 | 參數 |
|---|
open.mdui.panel | 項目開始開啟動畫時,事件將被觸發。 | <div class="mdui-panel-item"></div> | event._detail.inst:實例 |
opened.mdui.panel | 項目結束開啟動畫時,事件將被觸發。 |
close.mdui.panel | 項目開始關閉動畫時,事件將被觸發。 |
closed.mdui.panel | 項目結束關閉動畫時,事件將被觸發。 |
CSS 類別清單
| 類別名稱 | 說明 |
|---|
.mdui-panel | 定義一個收合區塊。 |
.mdui-panel-gapless | 移除開啟的項目和其他項目之間的間距。 |
.mdui-panel-popout | 使開啟的項目具有彈出效果。 |
.mdui-panel-item | 定義一個收合區塊的項目。 |
.mdui-panel-item-open | 使項目預設開啟。 |
.mdui-panel-item-header | 定義一個項目的頭部。 |
.mdui-panel-item-title | 定義項目頭部的標題。 |
.mdui-panel-item-summary | 定義項目頭部的概要。 |
.mdui-panel-item-arrow | 定義項目的展開收起圖示。 |
.mdui-panel-item-body | 定義項目內容。 |
.mdui-panel-item-actions | 定義項目的操作列。 |