Мобильное сафари на iOS / iPad - триггерный код JavaScript перед событием onfocus для textarea открывает экранную клавиатуру - PullRequest
0 голосов
/ 04 марта 2012

У меня есть веб-приложение с текстовой областью внутри элемента с фиксированной позицией, прикрепленного к нижней части экрана браузера. При выборе текстовой области, если браузер не прокручивается до нижней части страницы, текстовая область заканчивается примерно на 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 голосов
/ 04 марта 2012

Это ожидаемое поведение Ipad или любых других мобильных / портативных устройств, когда всякий раз, когда фокус изменяется на элемент input / textarea, страница прокручивается до этого элемента, вызывая событие открытой клавиатуры.В вашем случае вы можете попробовать добавить 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
    }

});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...