Входные элементы iOS 7, перемещающие фиксированные позиционированные элементы
Я пытаюсь перекомпилировать приложение для iOS 7, так как пока ничего из старого не работает.
Одна из многих проблем заключается в том, что я использую некоторые входы внутри UIWebViews. Текстовые входы, сборщики и т.д.
Теперь, когда появляется яркая белая клавиатура iOS 7, все нижние фиксированные элементы на веб-странице (например, кнопки подтверждения) прокручиваются вверх, как будто "верх" виртуальной клавиатуры - это новое дно моего UIWebView, Это существенно отличается от iOS6.x
Есть ли какой-либо волшебный трюк, чтобы поведение виртуальной клавиатуры работало так, как оно привыкло, без ввода JS/CSS в webView?
Ответы
Ответ 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, а эффект отскока неподвижных объектов при появлении клавиатуры все еще происходил.