关注input时,在iOS中忽略了固定/绝对定位

我正在用Phonegap构build一个应用程序,我有一个标题,我已经固定在视口的顶部。

header { position: fixed; top: 0; width: 100%; height: 30px; background-color: red; z-index: 100; } 

除了当我点击一个input字段并且键盘向上滑动时,这个按照我想要的方式工作。 然后定位被完全丢弃。 标题在可见的视图外面向上滑动。 再次closures键盘后,它将返回到原来的位置。

我读过一些手机浏览器不关心定位和绝对位置,以确保一个可能的小屏幕没有被固定的元素覆盖。 这是真的?

有没有解决的办法?

我已经尝试将input焦点时的标题设置为绝对。 我在这里读了一下, http://dansajin.com/2012/12/07/fix-position-fixed/ 。 但是,它似乎并没有为我工作。

感谢任何帮助。 干杯

PhoneGap针对iOS的固定定位的实现对于虚拟键盘来说是一团糟。 我已经尝试了一些build议的解决scheme,包括你所链接的解决scheme,但没有一个能令人满意地工作。 禁用KeyboardShrinksView可能导致input字段隐藏在键盘下。

我结束了这个解决方法,它只是当键盘滑入视图时隐藏固定标题,并在键盘滑出视图后再次显示。 我正在等待一个更完整的解决scheme,但是这个解决scheme有一个干净和可靠的好处。 show()中的10 ms延迟足以防止标题在键盘向下滑动时在错误的位置瞬间闪烁。 如果用户直接从一个input字段到另一个input字段,那么hide()上的20 ms延迟将防止标题在错误的位置popup。

 $(document).on('focus','input, textarea, select',function() { setTimeout(function() { $('header').hide(); },20); }); $(document).on('blur','input, textarea, select',function() { setTimeout(function() { $('header').show(); },10); });