58 votes

Désactiver le défilement dans une application Web iPhone?

Existe-t-il un moyen de désactiver complètement le défilement de pages Web dans une application Web pour iPhone? J'ai essayé de nombreuses choses postées sur google, mais aucune ne semble fonctionner.

Voici ma configuration actuelle d'en-tête:

 <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=no;"/>
<meta name="apple-mobile-web-app-capable" content="yes"/>
 

document.body.addEventListener('touchmove', function(e){ e.preventDefault(); });

ne semble pas fonctionner.

56voto

drawnonward Points 35444

Mettre en place le événement au lieu de . Sous Un doigt événements il est dit qu’aucun événement n’est envoyés dans une casserole, alors `` est peut-être trop tard.

J’ai ajouté l’auditeur à documenter, pas de corps.

Exemple :

13voto

Rob Lauer Points 1198

Si vous utilisez jquery 1.7+, cela fonctionne bien:

 $("donotscrollme").on("touchmove", false);
 

12voto

kaleazy Points 1129

Cela devrait marcher. Plus de zones grises en haut ou en bas :)

 <script type="text/javascript">
   function blockMove() {
      event.preventDefault() ;
}
</script>

<body ontouchmove="blockMove()">
 

Mais cela désactive également les zones de défilement. Si vous souhaitez conserver vos zones de défilement tout en supprimant l’effet élastique en haut et en bas, voir ici: https://github.com/joelambert/ScrollFix .

10voto

Brynner Ferreira Points 318

Désactiver:

 document.ontouchstart = function(e){ e.preventDefault(); }
 

Activer:

 document.ontouchstart = function(e){ return true; }
 

4voto

Freebie Points 41

La page doit être lancée à partir de l'écran d'accueil pour que la balise méta fonctionne.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X