我有一个Web应用程序,它在固定位置元素内部有一个textarea,它停靠在浏览器屏幕的底部。每当选择textarea时,如果浏览器未滚动到页面底部,则textarea最终会在屏幕键盘上方约30个像素处。
我想尝试的是以某种方式触发此代码:
Query('html, body').scrollTop(999999);
在键盘打开前将文档滚动到页面底部。不幸的是,键盘出现之前不会触发:
jQuery('div#team_chat textarea').bind('focus', function(e){
if(jQuery.isIpad()){
jQuery('html, body').scrollTop(999999);
}
});
注意:isIpad()是我添加到jQuery对象的扩展,它检测当前浏览器是否是ipad。
答案 0 :(得分:0)
这是来自Ipad或任何其他移动/手持设备的预期行为,无论何时焦点更改为输入/ textarea元素,页面都会滚动到触发打开键盘事件的元素。 对于您的情况,您可以尝试在将页面滚动到底部之前添加setTimeout,以便在关注textarea之后,将发生浏览器的默认行为,然后您可以触发scrollTop函数。
jQuery('div#team_chat textarea').bind('focus', function(e){
if(jQuery.isIpad()){
setTimeout("jQuery('html, body').scrollTop(999999)",1000);//Here sis the change
}
});