2013-05-27 151 views
1

我是Phonegap/jQuery手機中的新手,在頁面轉換問題中我正面臨白屏。我試圖應用我在網絡上找到的許多解決方案(例如-webkit-backface-visibility:hidden;),但仍未解決問題。Phonegap/jQuery手機頁面轉換閃爍

我也設置了defaultPageTransitionnone(在jQuery mobile .js文件中),而且什麼也沒有。

我不能關閉硬件加速,因爲我需要它爲我的iDangerous swiper菜單。我的所有鏈接如下所示:

<a href='javascript:void(0)' class='news-main' onclick='someFunction()'>Some String</a> 

當我點擊鏈接someFunction()被調用。方法someFuction看起來像這樣:

function someFunction(){ 
    //setting some value that I need in next page 
    window.sessionStorage.setItem("someValue",someValue); 
    window.location="next-page.html"; 
} 

一切正常,除了在頁面轉換期間出現白色閃爍。它僅在某些設備上顯示(例如Android 4+)。

有什麼辦法可以解決這個問題嗎?或者,也許我做錯了什麼?提前致謝!

+0

見http://stackoverflow.com/a/16692917/104746 ---將視口設置爲user-scalable =沒有解決我的問題。 –

回答

1

嘗試如下

<a href='#' class='news-main' id='mylink'>Some String</a> 

JS

$(document).on('pagecreate', function(){ 
    $('#mylink').bind('click',function(){ 
     someFunction() 
    }); 
}); 

function someFunction(){ 
    window.sessionStorage.setItem("someValue",someValue); 
    $.mobile.changePage("next-page.html"); 
} 
+0

謝謝我按照你的說法寫下來並解決了問題。謝謝! – Kolovrat

0

你可以寫你的鏈接,

<a href='javascript:void(0)' class='news-main' onclick='someFunction()' data-transition="none" >Some String</a> 

爲jQuery Mobile的不是網頁很流暢transitions.Hence我們可以選擇爲了現在直到最後版本的jquery mobile與普通的頁面轉換關閉它們ASED。

+0

我也試圖把數據轉換:沒有在我的鏈接,但不幸的是沒有幫助。 Mayu Mayooresan給出的解決方案幫助了我。感謝您的建議。 – Kolovrat

2
android:hardwareAccelerated="false" 

打開你的清單,並粘貼此內部應用程序標記。因爲你的設備的硬件加速打電話每次

3

你需要的東西之前調用jQuery Mobile的JS這樣做:

<script src="js/jquery-1.10.2.min.js" type="text/javascript"></script> 
       <script type="text/javascript"> 
       $(document).bind("mobileinit", function() 
       { 
        if (navigator.userAgent.indexOf("Android") != -1) 
        { 
        $.mobile.defaultPageTransition = 'none'; 
        $.mobile.defaultDialogTransition = 'none'; 
        } 
       }); 
       </script> 
       <script src="js/jquery.mobile-1.3.2.min.js" type="text/javascript"></script> 

這就是足夠 refer

1
<script src="js/jquery-1.10.2.min.js" type="text/javascript"></script> 
       <script type="text/javascript"> 
       $(document).bind("mobileinit", function() 
       { 
        if (navigator.userAgent.indexOf("Android") != -1) 
        { 
        $.mobile.defaultPageTransition = 'none'; 
        $.mobile.defaultDialogTransition = 'none'; 
        } 
       }); 
       </script> 
       <script src="js/jquery.mobile-1.3.2.min.js" type="text/javascript"></script>