jQuery Mobile 1.1 : 更流暢,更快捷,更實用


jQuery Mobile 1.1 : 更流暢,更快捷,更實用

最新版本的jQuery Mobile 1.1本月13號剛剛發布,帶給我們了最新的強大特和代碼提升。在這篇文章中,我們將要快速的介紹jQuery mobile的新特性及其移動開發人員需要了解的所有內容。准備好和我們一起體驗jQuery mobile吧!

在這個文章中,我們將要介紹如下內容:

  • 改良的固定header和footer
  • 提高的頁面過渡效果,和倆個新開發的過渡效果 
  • 加載“spinner”和文本提升
  • 漂亮的迷你表單元素
  • 更漂亮的翻轉開關切換
  • 更好的滑動選擇
  • 禁止為整個頁面標簽優化和AJAX處理
  • 其它相關的提升和修改

在本篇文章結尾,你會看到一些jQuery Mobile 1.2的新特性和組件。

首先我們開始介紹jQuery mobile的標題特性,大大的提升了header和footer工具條。

Toolbar的巨大改良

固定的toolbar是用來固定頁面頂端和低端的工具條,通過添加data-position="fixed"來添加到頁頭和頁尾。

最簡單的方式去創建一個固定的頁面元素是使用CSS position:fixed 。因為移動瀏覽器對於這個屬性的支持不是很完整,所以在老版本中通過動態的重新定位來實現功能。雖然可以工作,但是不是非常完美。

很 幸運的是,瀏覽器的支持在最近已經被大大的增強了。使用version1.1,jQuery mobile團隊已經完整的重新設計了toolbar,開始使用position:fixed。這樣使得toolbar更加的流暢。對於不支持 position:fixed的瀏覽器,例如,Safari in iOS4.3。整個框架會fallback到一般的靜態位置的toolbar。

如果你希望重新使得它動態,你可以考慮使用一些polyfill

點擊下面的演示,看看新版本和舊版本的區別吧。如果需要看到效果,請使用現代瀏覽器,或者桌面瀏覽器。

jQuery1.0演示  jQuery1.1演示

而且toolbar現在擁有了一系列的選項方法幫助你自定行為。包括visibleOnPageShow選項來控制是否頁面初始的時候顯示toolbar。tapToggle選項來打開或者關閉"toggle-on-tap"特性。show,hide和toggle方法可以使用代碼控制顯示和隱藏toolbar。

這 里還有一個很重要的小變動,關於全屏定位。在jQmobile 1.0中你可以通過添加data-fullscreen="true“來實現toolbar的"fullscreen"模式。在1.1中,你現在需要添加 這個屬性到獨立的header和footer容器中而不是頁面容器。

更多信息:這里有一些已知的position:fixed和Android 2.2/2.3的問題。請查看詳細文檔

更多信息:jQMobile1.0使用CSS overflow-scrolling:touch來提升固定的toolbar。因為1.1使用真正的position:fixed,overflow-scrolling:touch已經被刪除了。所以這個屬性不再有效。

更流暢,更棒的頁面過渡效果

jQMobile1.1中最好的一個變化在於頁面間更加流暢的過渡效果。因為jQuery Mobile框架工作的方式,需要先滾動到頂端在執行頁面過渡效果。下面是整個流程:

  1. 用戶向下滾動到目前頁面
  2. 點擊一個link查看新頁面
  3. jQuery mobile滾動到本頁面的頂端
  4. jQuery mobile使用過渡效果來實現新頁面

這個過程比較不完美,特別對於比較慢的移動瀏覽器:

更流暢,更棒的頁面過渡效果

因為無法避免滾動。所以jquery mobile團隊使用了如下方式來處理:

  1. 用戶向下滾動到目前頁面
  2. 點擊一個link查看新頁面
  3. jQuery Mobile開始執行過渡效果
  4. 在一個合適的時候淡出fadeout頁面,jQuery mobile執行滾動到本頁面的頂端(頁面為空),然后在淡入fadein頁面。
  5. jQuery mobile完成過渡效果來實現新頁面

大家看到不同的地方在於過渡時機,頁面淡出后內容變少,這個時候滾動速度就更快。因為沒有內容,所以基本用戶看不到滾動效果。

大家可以看看如下的對比演示。

jQuery1.0演示  jQuery1.1演示

或者到jQuery Mobile網站上看演示:

更多信息:一個使用這種新的fade機制的例外過渡效果是slide,這個過渡效果使用老的非淡出式的方式。因為不使用fade效果更好,所以你可以考慮使用slidefade來得到更好的性能

更多信息:因為一些移動端瀏覽器的限制,例如,Android2.x,fade是唯一支持的特效。

兩個新添加的頁面過渡效果

除了1.0支持的slide, slideup, slidedown, pop, fade, 和 flip,1.1添加了2個過渡效果:

turn 和 flow

效果如下:

過渡效果turn演示  過渡效果flow演示

兩個新添加的頁面過渡效果

更好更靈活的”loading“旋轉效果

"加載中..."效果已經被重新設計,缺省依舊沒有文字。你可以設置更多選項:

$mobile.loadingMessageTextVisible:是否顯示Loading文字(boolean:缺省為false)

$mobile.loadingMessageTheme:是否使用特定的主題顯示信息框。缺省使用”a”,前提是 $.mobile.loadingMessageTextVisible為 true。

$mobile.pageLoadErrorMessageTheme:使用錯誤信息的主題

你可以在mobileinit方法中全局定義,如下:

$(document).bind( "mobileinit", function() {
  $.mobile.loadingMessageTextVisible = true;
} );

更多信息:和前面版本一樣,你可以使用$.mobile.loadingMessage顯示加載信息,$.mobile.pageLoadErrorMessage顯示錯誤信息。

如果你調用 $.mobile.showPageLoadingMsg()來顯示加載信息,你可以傳遞3個參數在自定義信息和“加載中”:

  • 信息框主題
  • 信息框文字
  • 是否隱藏圖片,缺省false
下面是演示

loading演示

更好更靈活的”loading“旋轉效果

toolbar中使用的迷你表單元素

現在你可以添加一些data-mini="true"到表單元素中來創建更小的表單元素,非常適合添加到toolbar中。這個頁面可以查看所有支持的元素及其正常版本。

toolbar中使用的迷你表單元素

更漂亮的翻轉開關切換

重新定義了開關的樣式,看起來更緊湊。更接近移動平台上的本地開關樣式。

新樣式的開關選擇

jQuery1.0演示  jQuery1.1演示

更好的滑動選擇

區域選擇現在支持了step屬性。你可以添加step=5到<input type="range"/>來生成一個滑動選擇。

另外一個加強是提供了data-hightlight="true"屬性,會提供了一個輸入框告訴用戶選擇的數值,如下圖:

更好的滑動選擇

查看演示

阻止元素被針對移動設備改良

因 為jQuery Mobile缺省會搜索頁面元素,將它們自動改成針對移動或者觸摸設備更有好的元素。例如,滑動選擇,復選框或者list view等。同時也添加AJAX到link和button,但是有的時候我們不希望它這樣處理,例如,我們自己開發自己的頁面組件。

以往我們都用一些小技巧,例如, keepNative 選項,initSelector 屬性等,在jQuery Mobile1.1中,我們可以使用data-enhance="false"來阻止jqMobile處理。

<div id="myContainer" data-enhance="false">
<!-- Enhancement and Ajax handling disabled for all elements inside this div -->
</div>

並且在全局選項中指定:

$(document).bind( "mobileinit", function() {
  $.mobile.ignoreContentEnabled = true;
} );

查看演示

針對整個容器關閉AJAX處理

在過去我們可以針對表單或者鏈接來添加data-ajax="false"屬性,禁止AJAX處理指定的對象表單或者鏈接。在jQuery mobile 1.1中,我們可以針對一個容易處理,如下:

<div id="myContainer" data-ajax="false">
<!-- Ajax handling disabled for all elements inside this div -->
</div>

和data-enhance屬性一樣,你也需要在mobileinit中指定ignoreContentEnabled為true。

查看演示

其它變化

  • 更清楚的缺省主題
  • 更容易的主題Roller
  • 支持jQuery1.7.1
  • AMD模塊支持
  • 解決縮放bug 
  • 可搜索的文檔

jQuery mobile 1.2特性

這里列出計划中的幾個特性:

彈出組件

允許你講一個div轉化為一個彈出組件,data-role="popup",這里查看演示

無新頁面加載取得頁面內容

幫助你取得鏈接內容加載到本地的容器中

下載Builder

幫助你下載你需要的組件,效果等等。

總價

這篇文章中我們介紹了jQuery mobile 1.1的新特性,你學習了toolbar的加強,過渡效果的加載和新過渡效果等。還介紹了1.2中的一些計划開發的特性。希望對於大家開發jQuery有幫助。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM