我有一个移动网站,其中有一个div固定在屏幕底部通过位置:固定。在iOS 5(我在iPod Touch上测试)中一切正常,直到我在一个带有表单的页面上。当我点击输入字段,出现虚拟键盘时,div的固定位置突然丢失了。现在,只要键盘可见,div就会随页面一起滚动。单击完成关闭键盘后,div将恢复到屏幕底部的位置,并遵循位置:固定规则。
还有其他人经历过这种行为吗?这是意料之中的吗?谢谢。
发布于 2013-03-21 09:23:52
我在应用程序中遇到了这个问题。以下是我如何解决它的方法:
input.on('focus', function(){
header.css({position:'absolute'});
});
input.on('blur', function(){
header.css({position:'fixed'});
});
我只是滚动到顶部并将其放置在那里,这样iOS用户就不会注意到任何奇怪的事情。将其封装在一些用户代理检测中,这样其他用户就不会得到这种行为。
发布于 2012-09-28 05:35:38
我在ipad上遇到了一个稍有不同的问题,虚拟键盘将我的视窗推到了屏幕外。然后,在用户关闭虚拟键盘后,我的视区仍然不在屏幕上。在我的例子中,我做了类似以下的事情:
var el = document.getElementById('someInputElement');
function blurInput() {
window.scrollTo(0, 0);
}
el.addEventListener('blur', blurInput, false);
发布于 2013-02-05 19:14:54
这是我们用来解决ipad问题的代码。它基本上是检测偏移和滚动位置之间的差异--这意味着'fixed‘不能正常工作。
$(window).bind('scroll', function () {
var $nav = $(".navbar")
var scrollTop = $(window).scrollTop();
var offsetTop = $nav.offset().top;
if (Math.abs(scrollTop - offsetTop) > 1) {
$nav.css('position', 'absolute');
setTimeout(function(){
$nav.css('position', 'fixed');
}, 1);
}
});
https://stackoverflow.com/questions/7970389
复制相似问题