android - jQuery Mobile 固定页脚在键盘出现时移动

标签 android ios cordova jquery-mobile

我使用 Phonegap 和 jQuery Mobile 设计了一个应用程序。固定页脚正常工作,直到我单击下拉菜单或文本字段,这导致页脚从 View 中消失 (Android 4.0) 或移动到 View 中间 (Android 2.2 Galaxy Tab)。有什么建议吗?

Phonegap 版本:Cordova 2.1.0
jQuery 移动版:1.2.0

这是我的代码:

<div data-role="footer" class="nav-mobilyzer" data-tap-toggle="false" data-position="fixed">
  <div data-role="navbar" class="nav-mobilyzer" data-grid="d">
    <h1>footer</h1>        
  </div>
</div>

最佳答案

我在某些设备上遇到了页脚显示的问题,而在其他设备上却没有。我发现这对我有用:

var initialScreenSize = window.innerHeight;
window.addEventListener("resize", function() {
    if(window.innerHeight < initialScreenSize){
        $("[data-role=footer]").hide();
    }
    else{
        $("[data-role=footer]").show();
    }
});

编辑:

但是方向改变呢?

var portraitScreenHeight;
var landscapeScreenHeight;

if(window.orientation === 0 || window.orientation === 180){
    portraitScreenHeight = $(window).height();
    landscapeScreenHeight = $(window).width();
}
else{
    portraitScreenHeight = $(window).width();
    landscapeScreenHeight = $(window).height();
}

var tolerance = 25;
$(window).bind('resize', function(){
    if((window.orientation === 0 || window.orientation === 180) &&
       ((window.innerHeight + tolerance) < portraitScreenHeight)){
        // keyboard visible in portrait
    }
    else if((window.innerHeight + tolerance) < landscapeScreenHeight){
        // keyboard visible in landscape
    }
    else{
        // keyboard NOT visible
    }
});

公差导致横向高度与纵向宽度的计算不准确,反之亦然。

关于android - jQuery Mobile 固定页脚在键盘出现时移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13097663/

相关文章:

java - 错误 : "Duplicate files during packaging of APK"

java - 在 Eclipse 的 Android 项目中保存文本文件的位置

android - 将 admob 广告放在 webview 的底部

android - 如何在 Cordova for Android 中除周日外的所有日子发送一个通知?

ios - 在 xCode 之外获取免费的苹果证书

android - xml 中的未绑定(bind)前缀

objective-c - 使用从 NSOperation 子类 (ARC) 到主线程的 block 回调

ios - 使用 NSCoder Swift 编码数组

ios - 如何在 iOS 中不指定 HTTP 或 HTTPS 的情况下打开 URL?

javascript - IOS 本地通知不适用于 PhoneGap