前言:
本來是打算按照API來安排課程,但是,想想,這樣寫無非就是在造一個輪子而已,沒啥意思,而且,學習JQM的人群都是有一定的程式設計能力,新事物的接受能力都很不錯,寫些官方文檔都寫了東西無非就是翻譯一遍,是以,我打算把一些東西糅合到一起,用JQM做一些實際的東西,如果有些東西看不懂的話,請好好對比一下官方文檔的介紹.
今天的安排:
其實,JQM的元件不多就分類的話就隻有4種 Page&Dialogs Toolbars Buttons List views 今天的任務就是把這四個元件糅合到一起,做一個很小的實際項目.
項目設計:
項目簡介:
讓讀者能夠利用手機浏覽器友善的擷取書籍資訊.
項目的邏輯圖:
<a target="_blank" href="http://blog.51cto.com/attachment/201202/200050860.jpg"></a>
今天,不會說jqm與動态伺服器的互動,是以,以上的判斷也将會是靜态的判斷,這樣判斷這部分功能在課程稍後幾天将會介紹
預備知識
1.Pages & dialogs
在JQM中Pages與dialogs,其實本質還是最原始的内容包含器,簡單來說,page能用的,dialog也能用,它們的作用就是用于區分我們的設計,用于展示實體内容的我們用pages,用于作為行為的我們用dialogs.
例如如下的示例:
<div data-role="page” > <div data-role="content"> <a href="dialog.html"> 跳轉到一個Dialog頁面 </a> </div> </div>
下面開始寫我們的dialog的頁面:dialog.html
<div data-role="dialog" > <div data-role="header"> <h1>登入成功</h1> </div> <div data-role="content"> <a href="secondDay_success.html">傳回!</a> </div> </div>
這裡有要注意的地方!!
在jqm 1.0正式版之前,dialog這個data-role是不存在的,是以,在之前的資料中,dialog就是一個page,必須在跳轉的時候用 data-rel='”dialog” 用于區分那些是pages或者dialogs,是以要在跳轉的時候必須這樣寫
<a href="dialog.html" data-role="dialog">
而在正式版中,dialog成為了一種特定的資料角色,是以,在使用dialog的時候可以不用具體指明data-rel=”dialog”,不過,之前的那種寫法現在一樣能用.
由于這是在正式版出現的新角色,在某些IDE工具就沒法展現出這個角色,例如 dreamweaver cs5.5 就算是把JS替換成最新的版本,還是一樣不認dialog參數,這個所導緻的問題就是我們無法在dw裡面預覽我們的dialog.當然有個簡單的辦法可以處理,先用page預覽,然後再改為dialog….
對話框實機效果圖:
<a target="_blank" href="http://blog.51cto.com/attachment/201202/200423723.png"></a>
注意:如果在測試的發現,更改了dialog的設定,但是,使用的時候沒發現改變,請注意清一些浏覽器的緩存
2.Toolbars
Toolbars即工具欄,我們可以分為三類:
Header bars
Footer bars
以上兩個本質就是在原本的顯示中添加幾個動作按鈕,具體的例子,請參考官方例子.
Navbars
這個是一個特定的資料角色
data-role="navbar"
用于聲明一個導覽列,在使用上也是很簡單
<div data-role="header" id="top"> <h1>jQuery Mobile 體驗之旅</h1> <div data-role="navbar"> <ul> <li><a href="secondDay.html">書籍</a></li> <li><a href="resources.html">資源</a></li> </ul> </div> </div>
導覽列實機使用截圖:
<a target="_blank" href="http://blog.51cto.com/attachment/201202/200605354.png"></a>
3.Button
button在jqm上的實質就是一推CSS樣式,html 的元素如果作為button 角色就會成為附上button的樣式用于控制顯示,剩下的就是我們怎麼布局我們的button,在jqm 中有兩套用于管理button的方式
一: inline
在jqm中一個button 預設是block就是說,我們再加一個button就會換行,有時候我們需要在一行中顯示隻須加上data-inline=”true”
這裡建議去看官方的文檔有非常詳盡的說明
二:controlgroup
如果,我們懶得每個button都添加data-inline=”true”用于水準布局,那麼我們就可以使用controlgroup這個資料角色我們隻須要在一堆button外面加上一個div,并設定 data-role=”controlgroup” data-type=”horizontal” 就可以讓我們的button水準布局了.更多檢視官方文檔:
額外提一下:button 還可以進行設定,方法,和事件,具體使用和例子在官方文檔中:
請認真閱讀和比較
4.listView
listView用于列項顯示,要使用它隻需要:
<ul data-role="listview"> <li>xxx</li> <li>yyy</li> <li>zzz</li> </ul>
看似很簡單的使用,但是,使用起來太靈活了,我建議各位好好閱讀一下官方文檔,掌握一些基本的listview的顯示,在以後的課程中我會用執行個體進行listview的使用.各位,先去看下官方文檔吧…
5.總結
其實整個JQM架構的元件就這麼多了,在以後的課程,我會用一個小項目對這些知識進行實戰.
進行項目實戰:
在做好我們的知識儲備以後,我們就開始,把學到的東西進行一些練習吧.注意:所有頁面暫時全部為靜态頁面!!!
上面的項目設計中我們需要設計5個頁面
1,還沒登入的首頁
<a target="_blank" href="http://blog.51cto.com/attachment/201202/200749730.png"></a>
2,已經登入的首頁
<a target="_blank" href="http://blog.51cto.com/attachment/201202/200800446.png"></a>
3,注冊的頁面
<a target="_blank" href="http://blog.51cto.com/attachment/201202/200811868.png"></a>
5,成功的頁面
<a target="_blank" href="http://blog.51cto.com/attachment/201202/200819963.png"></a>
6,失敗的頁面
實際代碼的打包下載下傳
jqm_d1_d2.rar
線上demo
<a href="http://jqmobiletest.sinaapp.com/">http://jqmobiletest.sinaapp.com </a>
<a href="http://jqmobiletest.sinaapp.com/"></a>