完美的解决方案不存在,因为 jQM 开发人员没有实现完美的转换关闭解决方案。
它仍然可以这样做:
解决方案 1
$(document).bind("mobileinit", function() {
if (/Android/i.test(navigator.userAgent) ) {
$.mobile.ajaxEnabled = false;
}
});
这将防止使用 ajax 加载页面,从而防止页面转换。当然,如果您仍然需要使用 ajax 加载页面,这是一个很好的解决方案。
解决方案 2
这个解决方案会容易得多。我正在使用 jQuery Mobile 1.3.1。为此,相信我,这很重要。基本上您需要手动更改 jQuery Mobile js 文件,因此请使用未压缩的文件。
转到第 3788 行,您将在此处看到此功能:
// If transition is defined, check if css 3D transforms are supported, and if not, if a fallback is specified
$.mobile._maybeDegradeTransition = function( transition ) {
if ( transition && !$.support.cssTransform3d && $.mobile.transitionFallbacks[ transition ] ) {
transition = $.mobile.transitionFallbacks[ transition ];
}
return transition;
};
改变它,使它看起来像这样:
// If transition is defined, check if css 3D transforms are supported, and if not, if a fallback is specified
$.mobile._maybeDegradeTransition = function( transition ) {
if (/Android/i.test(navigator.userAgent) || (!/Android/i.test(navigator.userAgent) && transition && !$.support.cssTransform3d && $.mobile.transitionFallbacks[ transition ] )) {
transition = 'none';
}
return transition;
};
你可以在这里测试它:http: //www.fajrunt.org/transition-test/
如果您使用的是较旧的 jQM 版本,请告诉我是哪一个,我会为您修改它。您还可以从我的示例下载修改后的 jQM js 文件。不要忘记再次压缩它。