【技術】jQuery mobile問題

原文http://www.mansonchor.com/blog/blog_detail_62.htmlcss

1.頁面轉場閃屏問題html

在頁面轉場時,頁面內容常常會閃動,特別對於slide效果,fade的話沒那麼嚴重但也仍是會覺察到閃動。這對於用戶體驗是致命傷,緣由是手機瀏覽器對於css3的支持還不算太好。解決的方法就是讓頁面轉場效果進行的時候,先將內容背景隱藏,加上下面的一段CSSjquery

1
2
3
4
5
6
/* fixed閃屏 */
.ui-page { 
     backface- visibility : hidden
     -webkit-backface- visibility : hidden ; /* Chrome and Safari */ 
     -moz-backface- visibility : hidden ; /* Firefox */ 
}

須要注意的是你的jquery最好使用 1.7.1或以上的版本,不然有上面的css也可能仍是會閃屏。android

1.7版的jquery加多了對CSS3的支持和兼容,能夠說是爲移動端而設計的。css3

 

2.position fixed問題web

jquery mobile在1.1.0版本以前,是沒法真正實現fixed效果的,在header使用fixed的時候,拖動頁面你會看到header一閃一閃的跟下來,這實際是使用js實現header置頂的。ajax

1.1.0版推出後,jquery mobile聲稱他們真正的實現了header fixed,確實從外觀效果來看,是和fixed無異了,咱們也用得很爽。瀏覽器

但在這裏我要說明了,真正意義的css  position:fixed,只有在IOS 5才支持,IOS 4和android各版本的瀏覽器都是不支持的(其它手機操做系統的瀏覽器我沒試過)。這就跟IE6對position:fixed的狀況相似的。jquery mobile可以把header和footer作成fixed是它自己框架的UI功能,並不是解決了瀏覽器的兼容問題。緩存

因此若是你正在作一個項目,設計裏面有不少須要fixed去實現的效果,建議你仍是和設計師們談談吧。不然你將會面臨痛苦的兼容問題。app

 

3.頁面page控制、緩存問題

jquery mobile的頁面機制主要分兩種,一是單頁,而是多頁。

單頁就是你在一個 html頁面裏面把全部須要用到的page都寫在裏面了,這個時候頁面之間的轉場一個能夠靠 a標籤裏的href,裏面是想要轉到頁面的ID

1
< a href = "#page_id" ></ a >

單頁裏面寫到的page都會一直存在於dom中,因此不存在緩存的問題,頁面轉換時也不須要ajax去獲取新加載頁面的內容。缺點就是當需求比較多時,在一個html頁面寫完整個app須要的page和相應的js,頁面會顯得臃腫並且很差維護。

那麼咱們更多的是使用多頁的機制,把每一個page獨立寫到不一樣的html頁面裏,在須要轉到對應頁面時,才經過ajax去獲取頁面的內容和js,這樣使咱們的app代碼部署就如咱們網站開發同樣,一個頁面一個html文件。

這樣就會存在一個問題,由於每一個page不像單頁同樣寫在一塊兒,jquery mobile的機制只會把須要顯示的page加載到dom裏面,當離開這個page時,會自動把這個page的dom清除掉,假如你想要保留這個page在dom裏,之後再次顯示,須要加上 data-dom-cache="true" 一屬性

1
2
3
< div data-role = "page" data-dom-cache = "true" >
    page內容
</ div >

解決了page緩存的問題,那麼又會遇到page裏的js問題。例如我但願把page的dom緩存下來,可是我又但願每次這個page顯示的時候,觸發執行一些js,那麼這個時候咱們在對應page的事件處理時,就不能用 pageinit而是要用pageshow了,由於pageinit只在這個page從dom加載進來時觸發,若是page緩存了,那麼pageinit只會在第一次時觸發。

1
2
3
$( '#page_id' ).bind( 'pageshow' , function (){
     //頁面每次顯示你須要作的
})

除了pageshow,還有pagehide、pageremove、pagebeforeshow、pagebeforehide等等事件響應,都是能夠針對不一樣的需求使用的。

 

4.更多jQuery mobile問題,見:

http://www.wglong.com/main/artical!details?id=4#q10

相關文章
相關標籤/搜索