JQuery Mobile 基礎

1、頁面

              jQuery Mobile應用了HTML5標準的特性,在結構化的頁面中完整的頁面結構分爲header、 content、footer這三個主要區域。
 在body中插入內容塊:

<div data-role="page">

 <div data-role="header">...</div>

 <div data-role="content">...</div>

 <div data-role="footer">...</div>

 </div>

 data-role="page”代表這個div是一個Page,在一個屏幕中只會顯示一個page;
 header是標題,content是內容塊,footer是頁腳
 data-role參數表:
 參數
 說明
 page
 頁面容器,其內部的mobile元素將會繼承這個容器上所設置的屬性
 header
 頁面標題容器,這個容器內部可以包含文字、返回按鈕、功能按鈕等元素
 footer
 頁面頁腳容器,這個容器內部也可以包含文字、返回按鈕、功能按鈕等元素
 content
 頁面內容容器,這是一個很寬容的容器,內部可以包含標準的html元素和jQueryMobile元素
 controlgroup
 將幾個元素設置成一組,一般是幾個相同的元素類型
 fieldcontain
 區域包裹容器,用增加邊距和分割線的方式將容器內的元素和容器外的元素明顯分隔
 navbar
 功能導航容器,通俗的講就是工具條
 listview
 列表展示容器,類似手機中聯繫人列表的展示方式
 list-divider
 列表展示容器的表頭,用來展示一組列表的標題,內部不可包含鏈接
 button
 按鈕,將鏈接和普通按鈕的樣式設置成爲jQueryMobile的風格
 none
 阻止框架對元素進行渲染,使元素以html原生的狀態顯示,主要用於form元素。

 

2、頁面動畫

data-transition屬性可以定義頁面切換是的動畫效果。
 例如:

 <a href="index.html" data-transition="pop">I'll pop</a>

   data-transition參數表:
 參數
 說明
 slide
 從右側向左滑入頁面
 slideup
 從底部向上滑入
 slidedown
 從上向下滑入
 pop
 從中心漸顯展開
 fade
 漸顯
 flip
 翻轉
 備註:如果想要在目標頁面中顯示後退按鈕,可以在鏈接中加入data-direction="reverse"屬性,這個屬性和原來的data-back="true"相同,不知道在正式版本中將會保留哪個屬性。

 

 3、模態對話框
           模態對話框是一種帶有圓角標題欄和關閉按鈕的僞浮動層,用於獨佔事件的應用。任何結構
 化的頁面都可以用data-rel="dialog"鏈接的方式實現模態對話框應用。
 例如:<a href="foo.html" data-rel="dialog">Open dialog</a>
 這個頁面切換效果同樣可以使用標準頁面的data-transition參數效果。建議使用"pop"、"slideup" 和"flip"參數以達到更好的效果。
 這個模態對話框會默認生成關閉按鈕,用於回到父級頁面。在腳本能力較弱的設備上也可以添加一個帶有data-rel="back"的鏈接來實現關閉按鈕。
 針對支持腳本的設備可以直接使用href=”#”或者data-rel="back"來實現關閉。還可以使用內置的”close”方法來關閉模態對話框,例如:$('.ui-dialog').dialog('close')。
 由於模態對話框是動態顯示的臨時頁面,所以這個頁面不會被保存在哈希表內,這就意味着我們講無法後退到這個頁面,例如你在A頁面中點擊一個鏈接打開B對話框,操作完成並關閉對話框,然後跳轉到C頁面,這時候你點擊瀏覽器的後退按鈕,這時候將回到A頁面,而不是B頁面。
 

4、工具條
 工具條主要用於”header”,”footer”等區域,用來支撐和實現頁面中業務功能的應用。jQuery Mobile提供了一個相對完整的解決方案。
 工具條分爲:標題(header bar),頁腳(footer bar)和導航(nav bar)這三中應用。
 其中標題和頁腳在頁面中有一些不同的應用方式,默認工具條是以嵌入(inline)的方式定位的,這種定位方式可以實現最大限度的兼容性,包括在對腳本和css兼容性不佳的設備都有很好的優化。
 另一種是浮動(fixed)定位的方式,也可以成爲“靜態“定位,這種定位方式可以讓工具條始終保持在屏幕的頂部或者底部。並可以接受點擊事件來顯示/隱藏工具條,已達到最大化利用屏幕空間的目的。
 實現方式:在標題和頁腳區域加入data-position="fixed"屬性。
 標題容器
 標題容器是頁面頁眉區域的顯示控件,主要用來顯示標題和主要操作的區域。
 結構代碼:
 <div data-role="header">
 <h1>Page Title</h1>
 </div>
 爲了方便頁面的交互在頁面切換後會在標題容器的左側自動生成一個後退按鈕,這樣可以簡化我們的開發複雜程度,但是有些時候我們會因爲應用的需求而不需要這個後退按鈕,可以在標題容器上添加data-backbtn="false"屬性用來阻止後退按鈕的自動創建。
 標題容器的左側和右側分別可以放置一個按鈕,在阻止自動生成的後退按鈕後,我們就可以在後退按鈕的位置來自定義按鈕了。
 例如:
 <div data-role="header" data-position="inline" data-backbtn="false" >
 <a href="index.html" data-icon="delete">Cancel</a>
 <h1>Edit Contact</h1>
 <a href="index.html" data-icon="check">Save</a>
 如果需要自定義默認的後退按鈕中的文本,可以用data-back-btn-text="previous"屬性來實現,或者通過擴展的方式實現:$.mobile.page.prototype.options.backBtnText = "previous"。
 如果你沒有使用標準的結構來創建標題區域,那麼框架將不會自動生成默認的按鈕。
 

 5、頁腳容器
 頁腳容器的結構和標題容器的結構基本相同,只要把data-role屬性的參數設置爲”footer”。
 例如:
 <div data-role="footer">
 <h4>Footer content</h4>
 </div>
 與標題容器相比頁腳容器有更多的靈活度,它不會想標題容器一樣只允許放置兩個按鈕,並且也不會默認的把按鈕放置在左右的頂端,頁腳的按鈕默認是從左到右依次排列的,並且何以放置更多的按鈕。
 在頁腳容器上只要添加一個class="ui-bar"就可以將頁腳變成一個工具條,你可以不用設置任何的佈局樣式就可以在其中添加整齊的按鈕。
 例如:
 <div data-role="footer" class="ui-bar">
 <a href="index.html" data-role="button" data-icon="delete">Remove</a>
 <a href="index.html" data-role="button" data-icon="plus">Add</a>
 <a href="index.html" data-role="button" data-icon="arrow-u">Up</a>
 <a href="index.html" data-role="button" data-icon="arrow-d">Down</a>
 </div>
 如果我們需要一組鏈接效果,我們可以這樣寫:
 <div data-role="footer" class="ui-bar" data-position="inline">
 <div data-role="controlgroup" data-type="horizontal">
 <a href="index.html" data-icon="delete">Remove</a>
 <a href="index.html" data-icon="plus">Add</a>
 <a href="index.html" data-icon="arrow-u">Up</a>
 <a href="index.html" data-icon="arrow-d">Down</a>
 </div>
 </div>
 技巧:通過使用data-id屬性可以讓多個頁面使用相同的頁腳。

 6、導航
 導航容器是一個可以每行容納最多5個按鈕的按鈕組控件,用一個擁有data-role="navbar"屬性的div來容納這些按鈕。
 例子:
 <div data-role="footer">
 <div data-role="navbar">
 <ul>
 <li><a href="a.html" class="ui-btn-active">One</a></li>
 <li><a href="b.html">Two</a></li>
 </ul>
 </div><!-- /navbar -->
 </div><!-- /footer -->
 在默認的按鈕上添加class="ui-btn-active"
 如果按鈕的數量超過5個,導航容器將會自動以合適的數量分配成多行顯示。
 按鈕
 你可以將頁面中的任何一個鏈接通過data-role="button"來聲明成爲按鈕的顯示風格。爲了風格統一,框架會在頁面加載時自動將form類的按鈕格式化爲jQuery Mobile風格的按鈕,不需要添加data-role屬性。
 框架中包含了一組常用的圖標可以用於按鈕,用data-icon屬性中的參數來定義顯示不同的圖標效果。
 例如:<a href="index.html" data-role="button" data-icon="delete">Delete</a>
 data-icon原生參數列表
 參數
 圖標
 arrow-l
 arrow-r
 arrow-u
 arrow-d
 delete
 plus
 minus
 check
 gear
 refresh
 forward
 back
 grid
 star
 alert
 info
 home
 search
 除了可以默認顯示左側的圖標之外,還可以用data-iconpos屬性來定義圖標與文字的位置關係。
 data-iconpos參數列表:
 參數
 效果
 right
 圖標在文字的右側
 top
 圖標在文字上面
 bottom
 圖標在文字下面
 data-iconpos="notext"屬性可以讓按鈕隱藏文字。
 內聯樣式
 在框架中默認情況下按鈕是橫向獨佔根據屏幕寬度橫向自適應的,但是我們在應用的應用中經常需要在一行中顯示多個按鈕,這時候我們就需要知道一個新的叫做內聯模式的屬性了data-inline="true"。
 例如:
 <div data-inline="true">
 <a href="index.html" data-role="button">Cancel</a>
 <a href="index.html" data-role="button" data-theme="b">Save</a>
 </div>
7、 按鈕組
 jQuery Mobile框架可以將幾個按鈕以組的方式顯示,data-role="controlgroup"用以展示按鈕間的緊湊關係。例如:
 <div data-role="controlgroup">
 <a href="index.html" data-role="button">Yes</a>
 <a href="index.html" data-role="button">No</a>
 <a href="index.html" data-role="button">Maybe</a>
 </div>
 如果需要按鈕橫向排列可以增加data-type="horizontal"屬性。
 表單應用
 jQuery Mobile框架爲原生的html表單元素封裝了新的表現形式,對觸屏設備的操作進行了優化。在框架的頁面中會自動將form元素渲染成jQuery Mobile風格的元素。
 form元素的使用和默認的html方式使用相同,可以同樣使用Post和get方式提交數據,但是需要注意的是元素的ID命名問題,在常規的規範中同一個頁面中是不允許出現相同的ID命名的,在jQuery Mobile中由於其允許在同一個DOM中存在多個頁面,所以建議form元素的ID命名在整個項目中是唯一的,防止由於ID問題引發的錯誤。
 默認情況下框架會自動渲染在標準頁面中的form元素的風格,一旦成功渲染後,這個控件元素將可以使用jQuery中的函數進行操作。
 在某些情況下,我們需要使用html原生的form元素,爲了阻止mobile框架對該元素的自動渲染,在框架中我們在data-role屬性中引入了一個控制參數”none”。使用這個屬性參數就會讓該元素以html原生的狀態顯示。
 例如:
 <select name="foo" id="foo" data-role="none">
 <option value="a" >A</option>
 <option value="b" >B</option>
 <option value="c" >C</option>
 </select>
 8、列表應用
 信息列表是開發應用中使用頻率相對比較高的控件,用於數據顯示、導航, 數據列表等。爲了適應不同的信息內容,列表的表現形式也多種多樣。
 列表的代碼結構是以有序和無序列表來實現的,只要在ul或ol上聲明data-role="listview"就可以讓框架以列表的方式渲染了,例如:
 <ul data-role="listview" data-theme="g">
 <li><a href="acura.html">Acura</a></li>
 <li><a href="audi.html">Audi</a></li>
 <li><a href="bmw.html">BMW</a></li>
 </ul>
 如果需要在列表裏添加數據,則需要在數據加載後執行refresh()方法對列表進行數據更新。
 例如:$('ul').listview('refresh');

 

另附上一個不錯的學習網站:http://www.w3cschool.cc/jquerymobile/jquerymobile-tutorial.html

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章