我发现一个可行的解决方案,尽管它有点难看。它也不会在所有情况下都起作用,但是对我来说有效。由于我正在根据iPad的窗口大小调整用户界面的大小,因此用户通常无法滚动。换句话说,如果我设置窗口的scrollTop,它将保持为0。
另一方面,如果显示键盘,则突然滚动。因此,我可以设置scrollTop,立即测试其值,然后将其重置。使用jQuery的代码如下所示:
$(document).ready(function(){ $('input').bind('focus',function() { $(window).scrollTop(10); var keyboard_shown = $(window).scrollTop() > 0; $(window).scrollTop(0); $('#test').append(keyboard_shown?'keyboard ':'nokeyboard '); });});通常,您希望它对用户不可见。不幸的是,至少在模拟器中运行时,iPad可见(尽管很快)会再次上下滚动。尽管如此,它至少在某些特定情况下仍然有效。
我已经在iPad上对此进行了测试,它似乎可以正常工作。



