2012-03-01 49 views
5

我有一个移动网站,其中包含4个元素,绝对定位在100%高度div内,当我点击url栏时,div上的高度收缩并推动所有东西。Android OS键盘移动网站内容?

有无论如何解决这个问题?或者阻止它改变100%?或者我需要使用JS来获取屏幕大小并修复它?如果我将它设置为确切数量,它工作正常。

回答

6

当浏览器打开键盘时,android浏览器会调整窗口大小,但没有办法解决这个问题。

+2

这样,按理说,以防止这个问题的唯一方法是手动分配height属性。好的 – Steven 2012-03-01 20:37:11

+0

是的,你明白了。 – ChristopheCVB 2012-03-01 20:38:59

+0

或者,您可以在页面加载时抓取视口高度*,将其设置为常量,然后只引用该常量? – zelusp 2016-08-26 17:47:19

4

我能够通过设置的z-index为-1对于得到的方式,当Android浏览器弹出屏幕上的键盘的DOM元素来解决这个问题,如下所示:

function hideNavbar() // needed for Android browser pushing up keyboard 
{ 
    if (screen.height <= 480) // mobile 
    { 
     document.getElementById('navbar').style.zIndex = "-1"; 
    } 
} 

(我在输入文本框中输入了onclick事件),然后使用'onblur'(即当用户点击屏幕顶部的文本/搜索框时),将导航栏的zindex返回'1':

function showNavbar() // needed for Android browser pushing up keyboard 
{ 
    if (screen.height <= 480) // mobile 
    { 
     document.getElementById('navbar').style.zIndex = "1"; 
    } 
} 
0

Kevin Pajak的回答为我工作。 你也可以使用媒体查询:

your.css文件:

.hide-element-on-keyboard { 
    z-index: 1; 
} 

@media screen and (min-height: 300px) { 
    .hide-element-on-keyboard { 
     z-index: -1; 
    } 
}