2

简短版:在我的移动网络应用程序中,我想始终检测屏幕的可视区域(例如,软键盘顶部(如果存在)和标题栏底部之间的空间),所以我可以调整我的布局,无需缩放,并始终保持页面在屏幕上完全可见。有没有可靠的方法来做到这一点?


更长的版本:在应用程序中,我正在抓取所有触摸事件并自己控制平移和缩放。控制栏固定在屏幕的顶部和底部,始终可见。我的 veiwport 设置是:

    <meta name="viewport" content="width=device-width; initial-scale=1.0;
maximum-scale=1.0; user-scalable=no">

我的愿望是始终使我的页面布局适应浏览器窗口的可视区域,因此没有任何东西会脱离屏幕。因此,当键盘出现或消失,或者方向发生变化时,我需要检测宽度和高度并相应地重新布局。

如果不是屏幕键盘,window.innerWidthwindow.innerHeight就足够了。但是,当键盘出现时,事情就会变得古怪(仅在某些严格控制的条件下有效)。天堂禁止在键盘启动时改变方向。

DOM 中有什么可以告诉我我想要什么吗?我真的更愿意动态地解决这个问题,而不是将界面元素的大小硬连线到我的代码中,但如果没有其他方法,我会诉诸于此。

抱歉冗长,很难捕捉到我所经历的所有怪异。我的测试主要在运行 3.2 的 iPad 和运行 4.1 的 iPhone 上进行;两者的行为一直不一致。

4

1 回答 1

1

最接近您所追求的可能screen.availHeight是显示屏幕高度减去标题栏。window.onresize但是,即使使用事件,当您调出屏幕键盘或旋转屏幕时,这也不会改变。我想不出一种方法来考虑到这一点,我很害怕。

于 2011-04-03T02:21:42.837 回答