2013-04-22 97 views
0

我正在使用phonegap(cordova)创建一个新的iphone应用程序。我在我的应用程序中遇到了一个问题。如果我单击任何输入字段,则会弹出iphone键盘,并且整个页面位置也正在改变。像固定页脚弹出键盘上方。请引导我。iPhone上的键盘弹出问题的电话应用程序?

谢谢

+0

使用滚动视图并将所有对象添加到滚动视图中,并在单击文本框时设置滚动视图的内容偏移量。 – Balu 2013-04-22 05:55:53

+0

你能解释一下细节吗? – Arunkumar 2013-04-22 06:06:52

回答

0

这是一个很难得到'正确'的问题。您可以尝试隐藏输入元素焦点上的页脚,并显示模糊,但在iOS上这并不总是可靠的。每隔一段时间(例如,在我的iPhone 4S上,十次中的一次)焦点事件似乎无法触发(或者可能存在竞争条件),并且页脚不会隐藏。

大量的试验和错误后,我想出了这个有趣的解决方案:

<head> 
    ...various JS and CSS imports... 
    <script type="text/javascript"> 
     document.write('<style>#footer{visibility:hidden}@media(min-height:' + ($(window).height() - 10) + 'px){#footer{visibility:visible}}</style>'); 
    </script> 
</head> 

主要为:使用JavaScript来确定设备的窗口高度,然后动态地创建一个CSS媒体查询隐藏页脚时窗口的高度缩小10个像素。由于打开键盘会调整浏览器显示的大小,因此iOS永远不会失败。因为它使用CSS引擎而不是JavaScript,所以它更快更顺畅!

注意:我发现使用'visibility:hidden'比'display:none'或者'position:static'更小,但是你的里程可能会有所不同。