过渡期间JQuery-mobile android页面闪存

时间:2013-09-10 20:53:50

标签: jquery-mobile cordova

我正在使用带有phonegap的JQuery-mobilw,在Android上,使用多台机器测试但是当使用页面转换时,从第a页到第b页,它首先转移到b,而不是显示片刻,并且b显示再次。有时这种闪烁是值得的。

我使用的是1.4 JQuery-mobile,但1.3.2中已经存在问题。我尝试了从网上找到的所有可能的建议,但没有一个是有效的。这些包括

硬件加速转换

set -webkit-backface-visibility:hidden;

在JQuery-mobile等中进行缩放。

这真的让我伤心。

5 个答案:

答案 0 :(得分:1)

在JQM中,当您从A - > B转换时在DOM中添加任何动态动态。有时这种闪烁甚至是值得的,因为页面B还没有真正准备好(没有添加更多的东西完成)。你必须确保页面B准备就绪。为此,您可以使用setTimeout()在转换时修复闪烁。在javascript中,所有语句将同时运行(多线程,它非常有用,但有时控制也非常复杂)。
如果在从A转换为B时使用不在页面B中添加任何内容,则有时它会闪烁。请尝试setTimeout(),你会看到转换非常好,非常非常流畅。

setTimeout(function(){$.mobile.changePage('#page_mail_content', { transition: "slide"});},300);

这对我来说是一个固定的问题。我相信它已经为你修好了。
对不起,我的英语非常糟糕。@@

答案 1 :(得分:1)

你需要一些东西才能调用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

答案 2 :(得分:1)

添加user-scalable=no可以解决问题。

<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1"> 

来源

Solution to flicker problem in jQuery mobile page transitions!

参见评论

答案 3 :(得分:0)

我知道你经历的痛苦。不幸的是,Android在jQM的过渡中如此屡见不鲜。

您是否尝试过将回退过渡设为“无”?

$.mobile.transitionFallbacks.slideout = "none";

答案 4 :(得分:0)

我在这个位置解决了这个问题:

https://github.com/jquery/jquery-mobile/issues/5431

祝你好运。