在页面之间导航时闪烁

mik*_*643 65 jquery-mobile cordova

当我在页面之间导航时,我的phonegap/jquery移动应用程序大部分时间都会闪烁.这是正常的还是有解决方案?

Dec*_*coy 40

.ui-page {
    -webkit-backface-visibility: hidden;
}
Run Code Online (Sandbox Code Playgroud)

这适用于phonegap/jquery手机/ Android手机.

  • 小心.这个"修复"打破了Android 2.3上的一些表单,这会阻止您在选择中选择选项.奇怪的是,Android 2.2和4.0都很好,我们可以找到任何版本的iOS. (7认同)

Chr*_*ipp 18

有关于Android上闪烁的新闻(2012-01-10),请参阅http://jquerymobile.com/blog/2012/01/10/upcoming-releases-1-0-1-1-1-and-beyond /

Quote:从更复杂的幻灯片,弹出和翻转过渡中排除表现不佳的平台,如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");
}
Run Code Online (Sandbox Code Playgroud)

另一种(更好的)方法是为jQuery Mobile设置默认转换:

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

iPhone执行硬件加速转换,而其他平台按软件执行转换.这解释了为什么只有iPhone执行平滑过渡.


小智 16

我尝试了其他建议,但没有一个适合我.我最后通过更改视口元标记来修复它,如下所示:

<meta name="viewport" content="width=device-width, user-scalable=no" />
Run Code Online (Sandbox Code Playgroud)

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


avo*_*ion 2

您的应用程序适用于 iPhone 还是 Android?

我在一些地方看到过这个帖子,作为可能的 CSS 闪烁修复:

#YourApp {
    -webkit-backface-visibility: hidden;
    overflow: hidden;
}
Run Code Online (Sandbox Code Playgroud)