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

Входные элементы iOS 7, перемещающие фиксированные позиционированные элементы

Я пытаюсь перекомпилировать приложение для iOS 7, так как пока ничего из старого не работает. Одна из многих проблем заключается в том, что я использую некоторые входы внутри UIWebViews. Текстовые входы, сборщики и т.д.

Теперь, когда появляется яркая белая клавиатура iOS 7, все нижние фиксированные элементы на веб-странице (например, кнопки подтверждения) прокручиваются вверх, как будто "верх" виртуальной клавиатуры - это новое дно моего UIWebView, Это существенно отличается от iOS6.x

Есть ли какой-либо волшебный трюк, чтобы поведение виртуальной клавиатуры работало так, как оно привыкло, без ввода JS/CSS в webView?

4b9b3361

Ответ 1

Это фиксировало проблему для моего приложения cordova. Я не уверен, что это относится к вам, но на всякий случай.

Проверьте свои метатеги html на что-то вроде этого:

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0">

Замените это следующим образом:

<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, maximum-scale=1.0, target-densityDpi=device-dpi" />

Ответ 2

В нашем случае это будет исправляться, как только пользователь прокручивается. Итак, это исправление, которое мы использовали для симуляции прокрутки на blur на любых input или textarea:

$(document).on('blur', 'input, textarea', function () {
    setTimeout(function () {
        window.scrollTo(document.body.scrollLeft, document.body.scrollTop);
    }, 0);
});

Ответ 3

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

Единственное решение, которое я нашел, это иметь пользовательскую таблицу стилей iPad, которая заменяет все фиксированные элементы абсолютными элементами, устанавливает свойство css bottom в auto и использует top вместо

Ответ 4

Opposum, ваше решение сработало для меня, но только когда весы были установлены в 1.0. Если я установлю его на 0,9, то это будет похоже на то, что было до вашего предлагаемого исправления. Я установил начальный, максимальный масштаб и минимальный масштаб равным 0,9, а эффект отскока неподвижных объектов при появлении клавиатуры все еще происходил.