CHAPTER 10 - Polymer 元件 (deprecated)

Polymer 元件已公告關閉,,因此本篇教學已不建議閱讀,詳情請看官網文章




在開發流程上,UI 的設計往往也占了開發超過一半的時間,因此,最後這幾天就來介紹一下 EZoApp 也支援的 Polymer 元件,也因為有了 Polymer 元件,讓界面更加美觀豐富,不過比較可惜的地方,目前 Polymer 只支援最新的 Android 系統 ( 4.3 or 4.4 以上 ),因此要實際派上用場可能要特別注意。

在 Polymer 官方網站裏,提供了不止 14 個元件供大家使用 ( https://www.polymer-project.org/docs/elements/ ) 未來 EZoApp 也會逐漸將這些元件整合進來。

目前 EZoApp 擁有的 Polymer 元件如下:

paper-tabs core-toolbar core-scaffold core-list paper-menu-button
paper-button paper-input paper-checkbox paper-radio-group paper-toggle-button
paper-item paper-slider paper-fab paper-icon-button




1. paper-tabs

CHAPTER 10 - Polymer 元件

( 範例:http://jqmdesigner.appspot.com/designer.html#&ref=4802825842327552 )

與 navtab 很類似,就是幾個一組的按鈕,點選時會有 material design 的 ripple 特色效果,程式碼也很容易理解,就是 paper-tabs 裏頭包著 paper-tab,有點類似 ul 裏頭包著 li,比較有意思的是,可以設定「select」,0 代表第一個,1 代表第二個,依此類推。

<paper-tabs role="tablist" selected="2">
  <paper-tab role="tab">TAB 1</paper-tab>
  <paper-tab role="tab">TAB 2</paper-tab>
  <paper-tab role="tab">TAB 3</paper-tab>
</paper-tabs>

CHAPTER 10 - Polymer 元件



2. core-toolbar

CHAPTER 10 - Polymer 元件

( 範例:http://jqmdesigner.appspot.com/designer.html#&ref=4820289716224000 )

這個元件放上設計畫面之後,就等於幫你設計完成了一個具有工具列的 header ,也因為這樣所以名稱叫做 toolbar ,點選按鈕也都會有 ripple 的效果,相當的有意思,而且 polymer 元件還提供了非常多的 icon 可以選擇,從屬性面板就可以選取。

<core-toolbar style="background: #4285f4;">
  <paper-icon-button icon="menu" role="button" tabindex="0" aria-label="menu"></paper-icon-button>
  <span flex>Title</span>
  <paper-icon-button icon="refresh" role="button" tabindex="0" aria-label="refresh"></paper-icon-button>
  <paper-icon-button icon="more-vert" role="button" tabindex="0" aria-label="more-vert"></paper-icon-button>
</core-toolbar>

CHAPTER 10 - Polymer 元件

CHAPTER 10 - Polymer 元件



3. core-scaffold

CHAPTER 10 - Polymer 元件

( 範例:http://jqmdesigner.appspot.com/designer.html#&ref=4900724521566208 )

還記得 EZoApp 隱藏元件 slider panel 嗎?core-scaffold 元件提供了一個點選後從左側展開的選單,不需要又像 slider panel 自己撰寫,只需要把元件拉進來就可以囉!而且這個元件比較特別的地方,很像是已經幫我們產生好了一整個樣板,直接在上面編輯,就有 header、slider panel、content...等效果。

<core-scaffold>
  <core-header-panel mode="seamed" navigation flex>
    <core-toolbar></core-toolbar>
    <paper-item label="Item1" icon="settings" horizontal center layout></paper-item>
    <paper-item label="Item2" icon="settings" horizontal center layout></paper-item>
  </core-header-panel>
  <div tool>Title</div>
</core-scaffold>

CHAPTER 10 - Polymer 元件

CHAPTER 10 - Polymer 元件



4. core-list

CHAPTER 10 - Polymer 元件

( 範例:http://jqmdesigner.appspot.com/designer.html#&ref=5375970169061376 )

顧名思義就是清單的元件,不過這個清單都加上了 ripple 的效果 ( Material Design 就是以這個效果取勝啦! ),而 EZoApp 的 core-list 元件還可以串接 json 資料,因為他有 "{{}}" 的符號呀!而且從 JS code 裏頭可以發現吃的就是 json 檔案。

HTML:

<core-scaffold>
  <core-header-panel mode="seamed" navigation flex>
    <core-toolbar></core-toolbar>
    <paper-item label="Item1" icon="settings" horizontal center layout></paper-item>
    <paper-item label="Item2" icon="settings" horizontal center layout></paper-item>
  </core-header-panel>
  <div tool>Title</div>
</core-scaffold>

javascript:

$(document).on("polymer-ready", function () {
  list.data = [{
    name: "aaahfyyw",
    time: "8:29 pm",
    details: "PARKOUR!"
  }, {
    name: "aaam",
    time: "8:29 pm",
    details: "Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit..."
  }, {
    name: "aabkch",
    time: "8:29 pm",
    details: "Lorem Ipsum is simply dummy text of the printing and typesetting industry."
  }, {
    name: "aacdfqrp",
    time: "8:29 pm",
    details: "PARKOUR!"
  }];
});

CSS:

core-list {
  height: 100%;
}
core-list .item {
  box-sizing: border-box;
  height: 80px;
  border-bottom: 1px solid #ddd;
  padding: 4px;
  cursor: default;
  background-color: white;
  overflow: hidden;
}

CHAPTER 10 - Polymer 元件



5. paper-menu-button

CHAPTER 10 - Polymer 元件

( 範例:http://jqmdesigner.appspot.com/designer.html#&ref=4769317581225984 )

這個元件很單純,就是一個 menu 的按鈕元件,點選就會跳出一個清單選項。

<paper-menu-button icon="menu" tabindex="0">
  <div>Menu Item 1</div>
  <div>Menu Item 2</div>
  <div>Menu Item 3</div>
</paper-menu-button>

CHAPTER 10 - Polymer 元件



6. paper-button

CHAPTER 10 - Polymer 元件

( 範例:http://jqmdesigner.appspot.com/designer.html#&ref=5928725749170176 )

這就是一個 Material Design 風格的按鈕元件,可以透過屬性面板 icon 的選擇添加 icon,同時也是具有 ripple 的效果喔!

<paper-button label="flat button" role="button" tabindex="0" aria-label="flat button" class="paper-shadow-animate-z-1-z-2" icon="account-box"></paper-button>

CHAPTER 10 - Polymer 元件

CHAPTER 10 - Polymer 元件



7. paper-input

CHAPTER 10 - Polymer 元件

( 範例:http://jqmdesigner.appspot.com/designer.html#&ref=5969132398837760 )

Material Design 風格的 input 元件,點選輸入的時候會有頗炫的 ripple 效果,這種效果也是一般的 input 所做不到的!

<paper-input label="Type Something..." multiline></paper-input>

CHAPTER 10 - Polymer 元件



8. paper-checkbox

CHAPTER 10 - Polymer 元件

( 範例:http://jqmdesigner.appspot.com/designer.html#&ref=6315822158970880 )

顧名思義就是 checkbox,不過由於是 Polymer 元件裏頭的 Paper Elements ( 參考:https://www.polymer-project.org/docs/elements/ ),所以具備的效果自然不在話下,點選除了 ripple 的效果,配色與動態也都相當的不錯,點選的時候正方框會動態的變成勾勾。

<paper-checkbox label="click me" role="checkbox" tabindex="0" aria-checked="false" aria-label="click me"></paper-checkbox>

CHAPTER 10 - Polymer 元件

CHAPTER 10 - Polymer 元件



9. paper-radio-group

CHAPTER 10 - Polymer 元件

( 範例:http://jqmdesigner.appspot.com/designer.html#&ref=6522732074237952 )

和 checkbox 互為兄弟的 radio button,不過這裡其實是個 radio button 的集合 ( group ) 畢竟不同於 checkbox,radio button 是單選的按鈕,不可能只有一顆 ( 只有一顆的話就用 checkbox 就好了 ),所以這裡其實是用一個 radio group 把 radio button 包在裡頭,點選也會有漂亮的配色與 ripple 效果。

<paper-radio-group selected="small" role="radiogroup">
  <paper-radio-button name="small" label="Small" role="radio" tabindex="0" aria-checked="false" aria-label="Small"></paper-radio-button>
  <paper-radio-button name="medium" label="Medium" role="radio" tabindex="0" aria-checked="false" aria-label="Medium"></paper-radio-button>
  <paper-radio-button name="large" label="Large" role="radio" tabindex="0" aria-checked="false" aria-label="Large"></paper-radio-button>
</paper-radio-group>

CHAPTER 10 - Polymer 元件

CHAPTER 10 - Polymer 元件



10. paper-toggle-button

CHAPTER 10 - Polymer 元件

( 範例:http://jqmdesigner.appspot.com/designer.html#&ref=6026624428408832 )

這個元件本質上就是一個開關的元件,要把這個元件看成 flipswitch 元件也不為過,不過因為是 Polymer 的 Paper elements,所以整體質感當然就美多了。

<paper-toggle-button touch-action="pan-y" role="button" aria-pressed="false" tabindex="0"></paper-toggle-button>

CHAPTER 10 - Polymer 元件



11. paper-item

CHAPTER 10 - Polymer 元件

( 範例:http://jqmdesigner.appspot.com/designer.html#&ref=5852167420248064 )

有點類似清單的元件,而且可以借由屬性面板來更換 icon,icon 的風格都是 Material Design 的風格。

<paper-item label="Item" icon="settings" horizontal center layout></paper-item>
<paper-item label="Item" icon="settings" horizontal center layout></paper-item>

CHAPTER 10 - Polymer 元件



12. paper-slider

CHAPTER 10 - Polymer 元件

( 範例:http://jqmdesigner.appspot.com/designer.html#&ref=5332267534647296 )

很酷的一個拉霸元件,除了華麗的點選與拖拉效果,還可以自定區間,樣式上就會自動產生格點,而且還可以選擇一個 pin,就會在拖拉的時候冒出一個數值提示的泡泡。

<paper-slider min="10" max="200" value="110" editable></paper-slider>

CHAPTER 10 - Polymer 元件



13. paper-fab

CHAPTER 10 - Polymer 元件

( 範例:http://jqmdesigner.appspot.com/designer.html#&ref=5463674474987520 )

paper-fab 是一個會浮動在畫面上的按鈕,通常這個按鈕都會是最主要的功能,例如在通訊錄裡頭,就會放個 + 號,在 Google Driver 裡頭,就會是新增文件之類的。

<paper-fab class="mini" icon="arrow-forward" role="button" tabindex="0" aria-label="arrow-forward"></paper-fab>

CHAPTER 10 - Polymer 元件



14. paper-icon-button

CHAPTER 10 - Polymer 元件

( 範例:http://jqmdesigner.appspot.com/designer.html#&ref=4908447275417600 )

顧名思義,就是利用 Material Design 風格的 icon 作為按鈕。

<paper-icon-button icon="favorite" role="button" tabindex="0" aria-label="favorite"></paper-icon-button>

CHAPTER 10 - Polymer 元件



繼續閱讀 Chapter 11 - 有趣的客製化元件
回文章目錄

results matching ""

    No results matching ""