iOS/iPad mobile safari-textarea的onfocus事件打开屏幕键盘前的javascript触发代码
我有一个web应用程序,它在固定位置元素中有一个文本区域,固定在浏览器屏幕的底部。每当选择textarea时,如果浏览器未滚动到页面底部,则textarea将在屏幕键盘上方约30像素处结束 我想尝试的是以某种方式触发以下代码:iOS/iPad mobile safari-textarea的onfocus事件打开屏幕键盘前的javascript触发代码,javascript,position,mobile-safari,Javascript,Position,Mobile Safari,我有一个web应用程序,它在固定位置元素中有一个文本区域,固定在浏览器屏幕的底部。每当选择textarea时,如果浏览器未滚动到页面底部,则textarea将在屏幕键盘上方约30像素处结束 我想尝试的是以某种方式触发以下代码: Query('html, body').scrollTop(999999); 在键盘打开前将文档滚动到页面底部。不幸的是,这不会在键盘出现之前触发: jQuery('div#team_chat textarea').bind('focus', function(e){
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。这是ipad或任何其他移动/手持设备的预期行为,即每当焦点更改为input/textarea元素时,页面滚动到该元素,触发open keyboard事件。 对于您的情况,您可以尝试在将页面滚动到底部之前添加一个setTimeout,以便在文本区域被聚焦后,浏览器的默认行为发生,然后您可以启动scrollTop功能
jQuery('div#team_chat textarea').bind('focus', function(e){
if(jQuery.isIpad()){
setTimeout("jQuery('html, body').scrollTop(999999)",1000);//Here sis the change
}
});
不幸的是,这不起作用,因为在键盘打开后,固定位置元素不会更新它们的位置,因为焦点仍然在文本区域