IPhone Web App - предотвращение перемещения/выдвижения клавиатуры - iOS8

Во всех версиях, предшествующих 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 нажать/переместить представление?

Ответ 1

Попробуйте position:fixed на body и/или оберните содержимое в div и position:fixed на нем.

Ответ 2

Есть несколько вариантов:

  • Сделайте прослушивателем свой код ios, чтобы переместить экран вверх с высотой клавиатуры, поэтому все перемещается вместе с клавиатурой, а затем сохраняет ваш дизайн.

  • Сделайте свой дизайн css отзывчивым. Тогда нет проблем с изменением высоты, он будет прокручиваться внутри вашего веб-сайта.