基于JQuery Mobile的Web App實踐

摘要

JQuery Mobile是針對智能手機和平板電腦創建的移動Web App開發框架,它的出現填補了JQuery在移動設備應用上的缺憾,jQuery Mobile使用了極少的HTML5、CSS3、javaScript和Ajax腳本就可以完成頁面的渲染,秉承了jQuery“寫更少的代碼,做更多的事情”理念:他可以通過一個靈活、簡單的方式來布局網頁,并且兼容所有的移動設備。

本文對JQuery Mobile各個知識點和使用方法做了簡要描述,并使用JQuery Mobile實現了一個簡單的Web App實例。

關鍵字:JQuery Mobile。

文章組織結構

一.JQuery Mobile簡介

二.JQuery Mobile基礎

三.JQuery Mobile使用實例

四.總結

一、JQuery Mobile簡介

今天,JQuery驅動著互聯網上的大量網站,在瀏覽器中提供動態的用戶體驗,這促使傳統的桌面應用程序越來越少。現在,主流的移動平臺的瀏覽器功能都趕上了PC端桌面瀏覽器,因此JQuery團隊引入了JQuery Mobile。

與JQuery核心庫一樣,您的開發基本上不需要安裝任何的東西;只需要將JQuery Mobile依賴的*.js和*.css文件直接包含到web頁面中即可。

JQuery Mobile有以下特性:

1、JQuery Mobile基本框架整體比較小,js和css總共只有30k左右。

2、JQuery Mobile使用起來很簡單,頁面開發主要使用標記。

3、優雅降級:這也是JQuery Mobile最吸引人的一個地方,JQuery Mobile利用的是最新的HTML5和CSS3和JS,但是并不是所有的移動設備都提供了這樣的支持。JQuery Mobile的哲學是同時支持高端和低端設備,只是在低端設備和是哪個顯示的效果會略差一些。

4、主題系統,JQuery Mobile提供了一套主題系統,允許開發人員運用自己的主題樣式。

5、無障礙,JQuery Mobile在綜合考慮了Web App訪問者的訪問能力,提供了WAI-ARIA支持,以支持殘障人士使用輔助技術訪問web頁面。

二、JQuery Mobile基礎

1、頁面結構及頁面切換效果

JQuery Mobile中的一個頁面由header、content、footer三部分組成,通過data-role=“page”定義一個頁面。這也就是說Query Mobile在一個頁面中可以添加多個頁面,這意味著瀏覽器只需要加載一個頁面,就可以實現頁面平滑切換的用戶體驗。

基本的JQuery Mobile Web App都應當遵循下面的基本模板:

在上面的基本頁面結構中,“header”、“content”、“footer”在頁面中通常的使用方式如下:

用于放置標題和按鈕(典型的就是放置一個“返回”按鈕)

內容(文本、圖像、按鈕、列表、表單等)

頁面底部建立工具欄,添加一些功能按鈕。

JQuery Mobile中可以使用多種不同的切換效果來顯示新頁面的內容,只需要在超鏈接里添加data-transition屬性即可。目前JQuery Mobile支持的頁面切換效果有以下幾種:

slide

從右到左切換(默認)

sildeup

從下到上切換

slidedown

從上到下切換

pop

已彈出的形式打開一個頁面

fade

漸變褪色的方式切換

flip

舊頁面翻轉飛出,新頁面飛入

none

無過渡效果

flow

拋出當前頁,進入下一頁

sidefade

從右向左滑動并淡入到下一頁

turn

轉向下一頁

2、文本

為了使用靈活,JQuery Mobile使普通HTML內容更加獨立,文本內容的可讀性更強。

1)可折疊文本內容:

2)格式化文本:

使用span標簽添加class=“ui-li-count”,可在列表右側生成計數器。使用元素突出顯示內容,

元素用于減弱列表項中顯示的內容,顯示補充信息可在

元素中添加class="ui-li-aside"

3)面板

JQuery Mobile的面板會在屏幕的左側向右劃出,用data-role=“panel”定義面板,用data-display=“push、overlay、reveal”來控制展示方式。關閉面板方式:data-dismissible=“true”,點擊外部區域關閉,data-swipe-close=“true”,通過滑動關閉。

3按鈕

JQuery Mobile中通過給a、button或者input元素添加樣式(或者增加data-role=”button”),便可以創建按鈕。

按鈕時觸摸式應用程序的重要部分,JQuery Mobile提供了以下默認的按鈕樣式可供使用,當然開發人員也可以根據自己的需求定義自己滿意的樣式。

ui-corner-all

圓角

ui-shadow

陰影

ui-btn-inline

并排顯示

ui-btn-a

主題a按鈕樣式

ui-btn-b

主題b按鈕樣式

4列表

列表是JQuery Mobile比較突出的一個特性,JQuery Mobile使得標準的無序或有序列表在頁面中應用得更加廣泛,使用方法是在ul或ol標簽中添加屬性。

JQuery Mobile中的列表可分為如下幾類:

1)簡單列表

2)超鏈接列表

3)嵌套列表

4)分割列表

5)過濾列表

6)氣泡列表

7)縮略圖、圖標列表

5、導航欄

導航欄是由一組水平排列的鏈接構成,通常位于頁眉或頁腳內部。JQuery Mobile的導航欄中的鏈接會自動轉換為按鈕。

值得注意的是,JQuery Mobile導航導航個數超過5個會自動按每行2個導航換行顯示,

6、網格

JQuery Mobile提供了一套基于CSS的分列布局,但是由于移動設備上特別是手機屏幕寬度狹窄,所以一般不建議使用。

JQuery Mobile中由五種網格布局可以使用:

ui-grid-solo

1列

對應ui-block-a

ui-grid-a

2列

對應ui-block-a|b

ui-grid-b

3列

對應ui-block-a|b|c

ui-grid-c

4列

對應ui-block-a|b|c|d

ui-grid-d

5列

對應ui-block-a|b|c|d|e

7、對話框

上面JQuery Mobile中通過為a標簽添加data-rel=”dialog”或者data-dialog=”true”屬性便可以將連接頁面以彈出框的形式展示。

8、表單

JQuery Mobile使用表單是直接按原生的方法使用即可。

JQuery Mobile有很強的表單自適應能力:ui-field-contain,寬屏幕左右顯示(480px以上),窄屏幕上下顯示(480以下)

表單中的單選和復選提供了橫向和豎向(默認)的兩種類型,只需設置data-type="horizontal"。翻轉開關和滑動器以及下拉框還提供了mini版樣式只需設置data-mini="true"并且設置data-inline="true"。

9、表格

JQuery Mobile提供了兩種模式的響應式表格。

1)回流表格模式(data-mode="reflow"):寬屏顯示普通表格列,窄屏會變成表單式表格。

2)列切換模式(data-mode="columntoggle"):列切換模式會在寬度不夠時隱藏數據,添加data-priority=“1”屬性來設置隱藏列的順序,按優先級1(最高)-6(最低),從低到高隱藏。

7、主題

JQuery Mobile提供了2種不同的主題樣式,從“a”到“b”-每一種主題的按鈕,工具條,內容塊等等顏色都不一樣,沒個主題的視覺效果也不一樣。其中a主題是灰色背景黑色文字,b主題為黑背景白色文字,通過data-theme屬性可以自定義主題:按鈕

添加新主題:

通過修改CSS文件來添加或編輯新主題,只需要拷貝樣式模板,然后重命名字母類名(c-z),并在樣式中添加你需要的顏色和字體即可。同時也可以為主題添加新樣式,如按鈕添加類:ui-btn-(a-z).頁面添加ui-page-theme-(a-z).

8、事件

JQuery Mobile中的事件必須使用on()方法來綁定。

事件分為五類:

1) Page Initialization(頁面初始化事件,這些事件只在頁面加載時執行一次)

pagebeforecreate

頁面創建前

pagecreate

當頁面創建時

2) Page Load/Unload

pagebeforeload

當外部頁面加載時

pagecontainerload

頁面成功載入并插入DOM后觸發

3) page Transition:在頁面過度之前和之后(每次都會觸發),

pagebeforeshow

過渡動畫開始前去的頁面觸發

pageshow

去的頁面一開始加載/過渡動畫完成之后

pagebeforehide

過渡動畫開始前來的頁面觸發

pagehide

過渡動畫完成后來的頁面觸發

4) page Change:

pagebeforechange

頁面切換前觸發的事件

pagechange

頁面切換時觸發的事件

pagechangefailed

頁面切換失敗觸發的事件

5)其他事件:

swiper

水平滑動

swipeleft

左滑動

swiperight

右滑動

tap

點擊

taphold

長按

scrollstart

頁面滾動開始觸發事件

scrollstop

頁面滾動結束觸發事件

orientationchange

屏幕方向改變時觸發

三、JQuery Mobile使用實例

上面簡單介紹了JQuery Mobile的基本用法,下面將以具體例子實現一個簡單Web App。示例是以調用restAPI的方式獲取Web端數據的一個云計算portal簡單Web App。

1、創建一個html網頁instance.html,導入jquery和jquery.mobile.依賴。并創建主頁面index和詳情頁面Detai基本結構。

2、為主頁面index添加主題選擇、按關鍵字查詢的搜索框、導航欄以及ajax加載數據后顯示的列表。

3、detail頁面添加對虛機的詳情描述信息以及開關機等按鈕。

4、綁定主題選擇事件

5、在頁面創建時加載數據

6、綁定搜索,詳情按鈕、開關機按鈕事件

7、綁定事件搜索和開關機按鈕事件

7、編寫ajax獲取個人實例數據

8、獲取detail信息

8、獲取detail數據

9、開機

9、開機

10、關機

四.總結

隨著移動設備的普及,移動端設備越來越高端,移動端的瀏覽器也越來越接近甚至超越PC端瀏覽器的性能,Web App也隨著興起,相較于原生App來說Web App使用W3C標準的HTML語言開發,能夠輕松的實現跨平臺,移動應用開發者不再需要考慮復雜的底層適配和跨平臺開發語言的問題,原生App能實現的一些特殊功能如:本地數據存儲、音頻播放、調用照相機等現在Web App也同樣可以實現。在開發時間方面Web App的迭代周期要遠遠短于原生App,并且用戶不需要頻繁的重新下載或升級。從用戶體驗方面來說Web App既有Web的特性同時又有原生App的特性,Web App與傳統互聯網是互聯的,從一個Web App可以直接跳轉到另一個Web App。

JQuery Mobile便是為主流的移動平臺提供的一個JQuery核心類庫,同JQuery一樣,JQuery Mobile是一個免費開源的項目,受到越來越多的開發人員的關注,它有著豐富的界面樣式、強大的自適應能力、各種移動設備上可觸發的事件,并且JQuery Mobile同時可支持高端和低端設備。

本文通過對JQuery Mobile的各個知識點的具體使用分析并且提供了一個完整的案例。相信對于即將使用JQuery Mobile開發Web App的開發人員有一定的幫助。

個人簡介:

劉小兵

軟件開發工程師

任職于某大型IT外資企業,主要從事JavaEE開發。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,908評論 6 541
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,324評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,018評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,675評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,417評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,783評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,779評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,960評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,522評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,267評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,471評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,009評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,698評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,099評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,386評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,204評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,436評論 2 378

推薦閱讀更多精彩內容