Application Webkit iPhone: Comment modifier dynamiquement le zoom d'utilisateur (ou échelle, Pich & Zoom) dans la fenêtre?
Question
J'utilise JQTouch pour une application iPhone. JQTouch Désactivez par défaut la possibilité de pincer et de zoomer la page. Pour une page (contenant une grande image), je dois activer la fonction Pinch & Zoom. C'est facile :
var viewport = $("head meta[name=viewport]");
viewport.attr('content', 'width=320, initial-scale=1, maximum-scale=10.0, minimum-scale=1, user-scalable=1');
Mais une fois que l'utilisateur a joué avec le Pinch & Zoom, je dois réinitialiser dynamiquement le zoom (échelle) par défaut. J'ai essayé de réinitialiser la fenêtre:
viewport.attr('content', 'width=320, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;');
Après avoir appelé le code ci-dessus, il n'est plus possible de zoomer (en raison de l'utilisateur-échelle = 0;), mais il ne change pas l'échelle actuelle par défaut.
Je recherche quelque chose comme SetScale (1), ou pour modifier un attribut comme Current-Scale = 1
Une idée ?
La solution
La seule façon de réinitialiser la mise à l'échelle de l'utilisateur est de recharger la page:
window.location.reload();
Si vous ne voulez pas le faire, vous devrez ajouter un script pour zoomer dynamiquement des éléments tels que des images avec des événements tactiles. Voici un exemple de pincement et de zoom avec défilement:
http://tlrobinson.net/projects/iphone-light-table/
Il est facile d'intégrer ce code dans votre projet. Ouvrez simplement la source HTML, copiez le JavaScript et modifiez la fonction init () concernant vos besoins.