2011-05-10 118 views
65

當我在頁面之間導航時,我的phonegap/jquery移動應用程序大部分時間閃爍。這是正常的還是有解決這個問題的?在頁面間導航時閃爍

回答

2

是iPhone或Android的應用嗎?

我已經看到了這張貼在幾個點作爲一個可能的CSS修復的閃爍:

#YourApp { 
    -webkit-backface-visibility: hidden; 
    overflow: hidden; 
} 
+0

我在哪裏必須設置這個CSS解決?在我的jquery.mobile-1.0a4.1.min.css? – mike643 2011-05-10 19:26:56

+1

我會離開jquery css文件。你沒有使用自己的CSS文件嗎?如果是這樣,請將其添加到目標身體標籤。如: body { -webkit-backface-visibility:hidden; 溢出:隱藏; } – avoision 2011-05-10 19:46:03

+0

仍然無法正常工作。我嘗試過,但閃爍停留。這個CSS工程-webkit-transform:translate3d(0,0,0),但如果我輸入表單,屏幕會上下移動。 – mike643 2011-05-11 13:32:14

40
.ui-page { 
    -webkit-backface-visibility: hidden; 
} 

這個工作對我的的PhoneGap/jQuery Mobile的/ Android手機。

+0

在jquerymobile上工作過我 – 2011-09-29 20:58:39

+0

@Decoy yes在jquery mobile上也爲我工作,如果我有單獨的頁面1.html,2.html,3.html – 2011-11-10 14:07:38

+7

要小心。這個「修復」在Android 2.3上打破了我們的一些表單,這會阻止您在選擇中選擇選項。奇怪的是,Android 2.2和4.0都很好,就像我們可以找到的任何iOS版本一樣。 – AlexMax 2011-12-27 21:08:56

1

FIY:我上週使用了CSS修補程序,在繼續前進時我遇到了另一個問題。

我的應用程序有一個聯繫頁面 - 按照此處提供的說明(http://jquerymobile.com/demos/1.0a4.1/docs/forms/#forms-text.html)非常簡單。

但是,只要聚焦文本輸入字段,頁面就會「跳躍」(讀取滾動)上下。有時它也會在輸入文本時跳轉。描述原因是很難的,這種行爲是非常隨機的,但有一個關於它的討論。停用閃爍修復的想法也來自於此。 https://github.com/jquery/jquery-mobile/issues/2683#commits-ref-d195354

仍然在努力尋找一個「適當」的解決方案,但如果你沒有鍵盤輸入,我想它會工作的很好!

18

有關於Android上的閃爍消息(2012-01-10),見http://jquerymobile.com/blog/2012/01/10/upcoming-releases-1-0-1-1-1-and-beyond/

報價:排除像更復雜的幻燈片,流行的Android 2.x的表現不佳的平臺和和翻轉轉換等等這些會回落到所有轉場的默認淡入淡出,以確保順暢的體驗。

此線程的CSS解決方案對我而言並不適用(Android 2.x)。

我在所有鏈接中禁用了轉換data-transition="none",一切正常。它也應該在頁面級別上設置,但它不適用於我(jQuery Mobile 1.0)。這是代碼:

// turn off animated transitions for Android 
if (navigator.userAgent.indexOf("Android") != -1) 
{ 
    $("a").attr("data-transition", "none"); 
} 

另一個(更好)的方法是設置默認轉換爲jQuery Mobile的:

$(document).bind("mobileinit", function() 
{ 
    if (navigator.userAgent.indexOf("Android") != -1) 
    { 
     $.mobile.defaultPageTransition = 'none'; 
     $.mobile.defaultDialogTransition = 'none'; 
    } 
}); 

iPhone進行轉換硬件加速,而其他平臺上執行它每個軟件。這就解釋了爲什麼只有iPhone能夠平滑過渡。

+1

我不得不在一箇舊項目中做一些修復,這個技巧終於幫助了我,謝謝! – santuxus 2014-02-18 10:51:49

+1

我也必須評論,第二種方式(「更好的方式」)只是修復了一切!非常感謝! – Yaircl 2015-03-13 09:56:33

3

我擺脫了iOS上的閃爍!帶有靜態頁眉和頁腳。

我有我的CSS如下,沒有數據位置=「固定」的頁眉和頁腳。

.ui-mobile, .ui-mobile .ui-page, .ui-mobile [data-role="page"], 
.ui-mobile [data-role="dialog"], .ui-page, .ui-mobile .ui-page-active { 
     overflow: hidden; 
     -webkit-backface-visibility: hidden; 
} 

.ui-header { 
    position:fixed; 
    z-index:10; 
    top:0; 
    width:100%; 
    padding: 13px 0; 
    height: 15px; 
} 

.ui-content { 
    padding-top: 57px; 
    padding-bottom: 54px; 
    overflow: auto; 
    position: absolute; 
    top: 0; 
    right: 0; 
    bottom: 0; 
    left: 0; 
} 

.ui-footer { 
    position:fixed; 
    z-index:10; 
    bottom:0; 
    width:100%; 
} 
0

我有同樣的問題,它是由我的HTML中不同頁面的重複id造成的。

儘管重複的id位於不同的html頁面中,但JQuery Mobile會將您的所有HTML文件編譯爲一個HTML文檔,以便它可以執行頁面轉換。

這導致無效的HTML並導致類似於您所描述的閃爍。

一旦我糾正了重複id問題,所有工作都很好。

UPDATE:堆棧溢出答案在這裏jQuery Mobile的https://stackoverflow.com/a/8608474/271125

0

解釋更多關於重複的ID問題,當使用CSS的解決方案

.ui-page { 
    -webkit-backface-visibility: hidden; 
} 

您可能遇到的其他問題,所以它不是一個好主意。

其實,jQuery手機v1.1.0有轉換的問題。看看thisthis

0

在你的文檔,將此代碼:

<script src="disableTransition.js"></script> 

要禁用閃爍的轉變,在disableTransition.js文件裏,把這個代碼

$(document).bind("mobileinit", function(){ 
$.extend( $.mobile , { 
defaultPageTransition: 'none' 
}); 

$.mobile.defaultPageTransition = 'none'; 
$.mobile.defaultDialogTransition = 'none'; 
}); 

解決我在Android上。

0

我有同樣的問題,但更糟的是,當在Phonegap中包裝Jquery移動應用程序時。頁面轉換不僅閃爍,而且用戶界面完全被破壞。我嘗試了大部分在這裏建議的解決方案,但沒有任何工作。然後我找到了Piotr Walczyszyn的this解決方案,一切都像夢一樣!強烈建議任何人一起使用Jquery mobile和Phonegap。

16

我嘗試了其他建議,但沒有一個爲我工作。 我最終通過改變視meta標籤如下修正它:

<meta name="viewport" content="width=device-width, user-scalable=no" /> 

由於http://www.fishycode.com/post/40863390300/fixing-jquery-mobiles-none-transition-flicker-in

+0

該解決方案適用於我。 Android 4.2.2,JQM 1.3.1和Phonegap 2.8 – ethree 2013-06-23 13:47:54

+0

這是正確的解決方案...在Android 2.3(htc desire)和4.2(samsung table)上爲我工作。 – dyoser 2013-07-11 09:43:46

+0

添加「user-scalable = no」爲我修復(Android 4.0.3 HTC Rezound) – jwinn 2013-10-25 06:12:11

0

檢查這個環節,我有同樣的問題,所以我記錄它。

鏈接內容:

我正在開發使用JQM一個PhoneGap的Android項目。我的 項目包含固定的外部頭和外部面板。

從一個頁面導航到另一個頁面時,我看到一個白色的瞬間(整個 頁面)短暫的奇怪。我在網上搜索,但現在 適當的信息和大量的代碼在JQM核心文件上的變化。經過長時間的研究之後,我發現並希望每個人都瞭解它。

修復:更改

<meta name = "viewport" content="width=device-width, initial-scale=1" /> 

<meta name = "viewport" content="width=device-width, user-scalable = no" /> 

https://shariefmohatad.wordpress.com/2014/06/12/blinkingflickering-with-jqmobile-and-phonegap-aka-phonegap-on-android-2/