Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在iOS中,聚焦于输入时忽略了固定/绝对定位_Javascript_Ios_Css_Cordova_Safari - Fatal编程技术网

Javascript 在iOS中,聚焦于输入时忽略了固定/绝对定位

Javascript 在iOS中,聚焦于输入时忽略了固定/绝对定位,javascript,ios,css,cordova,safari,Javascript,Ios,Css,Cordova,Safari,我正在用Phonegap构建一个应用程序,我有一个标题,固定在视口顶部 header { position: fixed; top: 0; width: 100%; height: 30px; background-color: red; z-index: 100; } 除了轻触输入字段和键盘向上滑动外,这一切都可以正常工作。然后,完全放弃定位。标题在可视视图外向上滑动。再次关闭键盘后,它将返回原位 我曾读到一些移动浏览器不关心定位固定和绝对,以确保可能的小屏幕不会被固

我正在用Phonegap构建一个应用程序,我有一个标题,固定在视口顶部

header {
  position: fixed;
  top: 0;
  width: 100%;
  height: 30px;
  background-color: red;
  z-index: 100;
}
除了轻触输入字段和键盘向上滑动外,这一切都可以正常工作。然后,完全放弃定位。标题在可视视图外向上滑动。再次关闭键盘后,它将返回原位

我曾读到一些移动浏览器不关心定位固定和绝对,以确保可能的小屏幕不会被固定元素覆盖。这是真的吗

有办法解决这个问题吗


我曾尝试在输入被聚焦时将标题设置为绝对值。我在这里读到过。然而,它似乎不适合我

PhoneGap对iOS的固定定位的实现在虚拟键盘方面很差。我尝试了许多建议的解决方案,包括您链接的解决方案,但没有一个效果令人满意。禁用KeyboardShrinksView可能会导致输入字段隐藏在键盘下

最后,我采用了这种变通方法,它只是在键盘滑入视图时隐藏固定标题,并在键盘滑出视图后再次显示固定标题。我在等待一个更完整的解决方案,但是这个解决方案的好处是干净可靠。show()上的10毫秒延迟足以防止在键盘向下滑动时标题在错误的位置瞬间闪烁。如果用户直接从一个输入字段转到下一个输入字段,hide()上的20毫秒延迟可以防止标题出现在错误的位置

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

你添加了键盘插件吗?您可以向config.xml文件添加一个属性:将
KeyboardShrinksView
设置为true.Hi@KerriShotts,谢谢您的回复。是的,我添加了插件,KeyboardShrinkView属性也添加了插件。这对我不起作用。假设也是5@KerriShottsOk——所以,我遇到了这个。尝试添加几个版本之前的键盘插件。它也有它自己的问题,但是最近的版本基本上没有在iOS 7上运行,这对我们没有什么好处。尝试:
cordova插件添加”https://github.com/apache/cordova-plugins#17bdd5fe62:keyboard“
(别忘了先删除当前的键盘插件。)几个SO问题可能重复。有关详细信息,请参阅。您好@daxmacrog,谢谢您的回复。这实际上是一个很好的解决方案。键盘朝上时,可视视图端口较小,因此将标题全部隐藏在一起(也相当大)是有意义的。谢谢,今天可能要试试这个。:)今天试用了一下,效果很好。虽然这是一个很好的替代解决方案,但我仍然希望显示标题并将其固定在视图端口的顶部。我将尝试寻找更多的解决方法,使之成为可能。谢谢这在某些情况下是可行的,但如果您在导航栏中固定了需要访问的按钮(例如那些操纵相关表单的按钮),则用户必须点击表单字段的外部以取回这些按钮。遗憾的是,没有明显的方法检测键盘本身,而不是专注于输入。