iOS / iPad移动游戏 - 在textarea onfocus事件之前的javascript触发器代码打开屏幕键盘

时间:2012-03-04 06:11:52

标签: javascript position mobile-safari

我有一个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。

1 个答案:

答案 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
    }

});