Désactiver le défilement de l’écran tactile

Pour mon travail, je dois créer un fichier d’aide sur une application à écran tactile. Normalement, la page est déroulable au toucher, ce qui est correct, mais maintenant, ils m’ont demandé de créer une fenêtre contextuelle mobile, ce qui gêne le défilement de l’écran tactile. Est-il possible de désactiver le défilement de l’arrière-plan lorsque la fenêtre contextuelle est à l’écran?

J’ai vu le post suivant: Empêcher le défilement en arrière-plan lors de l’affichage d’un menu contextuel.

Mais ” $(window).scroll(function() { return false; }); ” ne semble pas fonctionner pour moi.

Mon application fonctionne sur le fond avec IE7.

Le code que j’utilise maintenant est le suivant.

 _overlay: function (status) { switch (status) { case 'show': $(window).scroll(function () { return false; }); $.alerts._overlay('hide'); $("BODY").append(''); $("#popup_overlay").css({ position: 'absolute', zIndex: 99998, top: '0px', left: '0px', width: '100%', height: $(document).height(), background: $.alerts.overlayColor, opacity: $.alerts.overlayOpacity }); break; case 'hide': $(window).unbind('scroll'); $("#popup_overlay").remove(); break; } }, 

Cela crée une superposition entre l’arrière-plan et la fenêtre en incrustation, mais l’arrière-plan est toujours déroulable. Supprimer la barre de défilement n’est pas vraiment une solution, car j’utilise le toucher et le balayage.

Si vous utilisez jQueryMobile, utilisez ce code pour arrêter le défilement de la page:

 $(document).bind('touchmove', function(e) { e.preventDefault(); }); 

puis utilisez ce code pour le laisser défiler à nouveau:

 $(document).unbind('touchmove');