web-dev-qa-db-fra.com

IOS 7 éléments d'entrée en mouvement des éléments positionnés fixes

J'essaie de recompiler une application pour iOS 7, car rien de l'ancien ne fonctionne jusqu'à présent. L'un des nombreux problèmes est que j'utilise des entrées dans l'interface utilisateur. Entrées de texte, cueilleurs, etc.

Maintenant, lorsque le clavier blanc brillant iOS 7 apparaît, tous les éléments fixes inférieurs de la page Web (tels que les boutons de confirmation) sont défilés vers le haut, comme si le "haut" du clavier virtuel est le nouveau bas de mon uiWebView. Ceci est un comportement sensiblement différent de iOS6.x

Y a-t-il une astuce magique pour que le comportement du clavier virtuel fonctionne comme celui-ci, sans injecter JS/CSS au Webview?

19
Francesco

Dans notre cas, cela se fixerait dès que l'utilisateur fait défiler. Il s'agit donc de la solution que nous utilisons pour simuler un défilement sur blur sur n'importe quel input ou textarea:

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

J'ai couru exactement le même problème et abandonné après deux jours d'expérimentation. Il semble que: a) tous les éléments fixes du fond vont progresser de manière à ce que leur décalage inférieur soit relativement sur le bord supérieur du clavier C) tous les éléments fixes de haut niveau restent dans leur position d'origine (ne pas bouger vers le haut comme ils l'avaient l'habitude de) - Notez que les éléments de haut-top absolus fonctionnent correctement.

La seule solution que j'ai trouvée était de disposer d'une feuille de style iPad personnalisé qui remplace tous les éléments fixes avec des éléments absolus, définit la propriété inférieure CSS sur Auto et utilise le dessus.

6
Pawel Lipka