Android 安卓键盘消失后,固定元素(HTML)中断?

Android 安卓键盘消失后,固定元素(HTML)中断?,android,html,css,position,trigger.io,Android,Html,Css,Position,Trigger.io,我试图在视口/屏幕的底部放置文本输入。它工作得很好,在onfocus事件之后,它甚至“粘”在键盘顶部 但是,当键盘关闭时,更改的位置(键盘顶部)和原始位置(视口底部)之间存在延迟 我对元素的css是: .fixed { position: absolute; z-index: 1000; height: 50px; display: block; bottom: 0px; width: 100%; } 编辑: 这种行为不仅仅依赖于固定/绝对定位

我试图在视口/屏幕的底部放置文本输入。它工作得很好,在onfocus事件之后,它甚至“粘”在键盘顶部

但是,当键盘关闭时,更改的位置(键盘顶部)和原始位置(视口底部)之间存在延迟

我对元素的css是:

.fixed {
    position: absolute;
    z-index: 1000;
    height: 50px;
    display: block;
    bottom: 0px;
    width: 100%;
 }
编辑:

这种行为不仅仅依赖于固定/绝对定位。位置:相对或位置:静态的输入也有相同的问题。看起来软键盘消失的速度比屏幕/浏览器视图更新的速度快得多。看起来像是Android默认浏览器中的内存问题或深层缺陷(现在杀了我)

这里是一些截图

关于重点:

关于模糊(注意蓝色屏幕±是否为mem问题?)


android键盘破坏布局的情况与此类似,下面的代码应该适合您

我们从顶部获取当前位置,设置顶部样式值,并重置底部值

var fixed = document.querySelector(".fixed"),
    distanceFromTop = fixed.getBoundingClientRect().top;
fixed.style.top = distanceFromTop + 'px';
fixed.style.bottom = 'auto';

不要使用“位置:绝对”。这样,键盘在任何时候都会显示在元素下。否则,在看到键盘时,如果不动态编辑视图端口高度,将无法实现。。。但是,由于安卓设备的高度不同,这将不起作用。顺便说一句,原生安卓视图也可以。谢谢你的回答@lin。我使用的是position:absolute,键盘仍然显示在我的元素下。当我使用相对或静态时,键盘位于元素上方,这是不需要的。这是否与android:WindowsofInputMode=“adjustPan”设置有关?因此,如果我理解正确,键盘会变得模糊(这需要一些时间),只有在键盘完全消失后,元素才会移回底部?也许作为一种解决方法,您可以在触发onblur事件时立即隐藏输入字段,并在文档调整大小后(或几毫秒后)再次显示它。@PatrickRudolph是的,这正是发生的情况。但是,我尝试在模糊事件前后隐藏输入元素,即使设置超时也是如此。我应该尝试文档大小调整事件,但我认为这不是问题所在。看起来软键盘比浏览器的调整速度快。我将添加一些照片。我也看到了Android webview应用程序的延迟。在较弱的设备上,效果似乎会增强。去年发布了关于同一问题的另一个问题。也许这会有所帮助: