Ответ 1
Попробуйте position:fixed
на body
и/или оберните содержимое в div
и position:fixed
на нем.
Во всех версиях, предшествующих iOS8, я смог предотвратить клавиатуру iPhone от подталкивания (и уничтожения) моего html/css/js представления, когда клавиатура появилась следующим способом:
$('input, select').focus(function(event) {
$(window).scrollTop(0);
// or via the scrollTo function
});
Так как iOS8, это больше не работает. Один способ заключается в том, чтобы поместить этот код в setTimeOut
setTimeout(function() { $(window).scrollTop(0); }, 0);
Но это только делает представление дрожащим движением, так как представление сначала подталкивается iOS, а затем перетаскивается назад моим кодом js. preventDefault и stopPropagation тоже не помогают.
Я пробовал все, что доступно в Интернете, в том числе мое собственное решение, размещенное здесь: Как предотвратить клавиатуру, нажав веб-просмотр в приложении iOS с помощью телефонной заставки, но пока, ничего не работает для iOS8. Любые умные идеи о том, как помешать клавиатуре в iOS8 нажать/переместить представление?
Попробуйте position:fixed
на body
и/или оберните содержимое в div
и position:fixed
на нем.
Есть несколько вариантов:
Сделайте прослушивателем свой код ios, чтобы переместить экран вверх с высотой клавиатуры, поэтому все перемещается вместе с клавиатурой, а затем сохраняет ваш дизайн.
Сделайте свой дизайн css отзывчивым. Тогда нет проблем с изменением высоты, он будет прокручиваться внутри вашего веб-сайта.