Подтвердить что ты не робот

Экранная стилизация при активной виртуальной клавиатуре

В идеале я хотел бы, чтобы весь интерфейс имел пользовательский стиль, который отображается на ios (itouch/ipad) или эквивалент андроида с присутствующей виртуальной клавиатурой. Подробнее см. Ниже.

Пользовательский набор правил взлома CSS, который должен быть активным, когда клавиатура "присутствует", также является приемлемым решением.

Настраивает как андроиды, так и ios на веб-сайте (HTML/JavaScript/CSS) Также обратите внимание, что макет внутри: "жидкость".

Изменить: Это был больше дизайн, затем текст; Таким образом, изменения не дезориентируют. На самом низком уровне я просто хочу изменить дизайн с помощью и без виртуальных клавиш (возможно, просто изменение фона).

Вопрос, который является хорошей или плохой конструктивной идеей, является спорным. Однако, я чувствую, что это не имеет отношения к вопросу. Для такого эксплойта может использоваться больше текста (например, игр или интерактивных носителей).

Следовательно, щедрость: Несмотря на то, что больше не нужен ответ для проекта, над которым я работал (использовался альтернативный дизайн). Я все еще верю, что этот вопрос может выиграть от ответа.

Поведение по умолчанию

                       +--------+ 
                       |        |
+------------+       +-+-hidden-+-+   <- ~50% hidden
| +--------+ |       | +--------+ |
| |        | |       | |visible | |
| |        | |   \   | |        | |   <- ~50% visible
| |  100%  | |  ==>  | +--------+ |
| |        | |   /   | |virtual | |
| |        | |       | |  keys  | |
| +--------+ |       | +--------+ |
+------------+       +------------+

Желаемое поведение

+------------+       +------------+   
| +--------+ |       | +--------+ |
| |        | |       | |visible | |   <- 100% visible (example styling)
| |        | |   \   | |        | |      Custom Styling
| |  100%  | |  ==>  | +--------+ |
| |        | |   /   | |virtual | |
| |        | |       | |  keys  | |
| +--------+ |       | +--------+ |
+------------+       +------------+
4b9b3361

Ответ 1

Я не уверен, это желаемый эффект?. проверьте эту ссылку

http://jsfiddle.net/UHdCw/3/

Обновление

(1). Предположим, что его сайт и работает в браузере устройства. Затем мы можем проверить наличие виртуальной клавиатуры, проверив размер экрана.

Проверка браузера устройства - http://jsfiddle.net/UHdCw/8/show/

code: - http://jsfiddle.net/UHdCw/8/

(2). Если вы создаете собственное приложение с HTML5 и Phonegap, все будет по-другому. Поскольку для проверки статуса keybord нет прямого API-интерфейса, мы должны написать наш собственный плагин в Phonegap.

В Android вы можете проверить отображение/скрытие статуса клавиатуры, используя собственный код [здесь). и вам нужно написать плагин Phonegap, чтобы получить эти события в нашем HTML.

[Phonegap - пример. Я думаю, что большая часть html для встроенных фреймворков имеет такой вид счастья, чтобы зацепиться за собственный код]

обновление iOS

Как вы сказали, нет изменений высоты/положения, когда клавиатура присутствует. Мы можем сделать одно, когда ввод получает фокус, мы можем добавить класс сокращения и уменьшить размеры элементов. Проверьте следующую ссылку.

http://jsfiddle.net/UHdCw/28/show/

Ответ 2

Я столкнулся с той же проблемой, это работает для меня:

<!-- Android Viewport height fix-->
<script type="text/javascript">
var isAndroid = navigator.userAgent.toLowerCase().indexOf("android") > -1; //&& ua.indexOf("mobile");
if(isAndroid) {
    document.write('<meta name="viewport" content="width=device-width,height='+window.innerHeight+', initial-scale=1.0">');
}
</script> 

Ответ 3

Попросите JavaScript применить класс к телу, когда элемент ввода имеет focus.

$("input, textarea").focus(function(){  $(document.body).addClass('when-keyboard-showing');     });
$("input, textarea").blur( function(){  $(document.body).removeClass('when-keyboard-showing');  });

И затем используйте @media запросы, чтобы определить, есть ли мобильный вид:

@media (max-width:550px) { 
    body.keyboard-up .header { height:0; padding:0; }
}

Комбинация позволит вам стилизовать страницу, когда клавиатура установлена ​​на мобильном устройстве. Спасибо.