我注意到,默认情况下,当专注于会被屏幕键盘遮挡的输入元素(或类似元素(时,整个页面将向上滚动(甚至是固定元素,例如标题(。可以使用以下代码段向上滚动(尽管很丑陋(:
$('textarea, input').bind('focusin focus',function(e) {
e.preventDefault();
$('html, body').animate({scrollTop:0,scrollLeft:0}, 'slow');
});
不过,如果用户手动滚动,他会滚动整个文档,包括固定元素(标题(。
一个肮脏的修复是将一些空行添加到包含表单的一些主div 中(如果需要,应该滚动(。然后,即使拔出键盘,用户现在也只能手动滚动主div,而不是整个文档。
有没有更好的解决方案?
就像指定"如果需要时应该滚动"div?
编辑:
这不是因为视口变了,我在那里错了。
浏览器会自动滚动页面,以便键在当前聚焦的输入字段上不会重叠。