Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS/iPad mobile safari-textarea的onfocus事件打开屏幕键盘前的javascript触发代码_Javascript_Position_Mobile Safari - Fatal编程技术网

iOS/iPad mobile safari-textarea的onfocus事件打开屏幕键盘前的javascript触发代码

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){

我有一个web应用程序,它在固定位置元素中有一个文本区域,固定在浏览器屏幕的底部。每当选择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。

这是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
    }

});

不幸的是,这不起作用,因为在键盘打开后,固定位置元素不会更新它们的位置,因为焦点仍然在文本区域