Empêcher Le Défilement De L'Arrière-Plan Lors De L'Affichage De Popup

j'ai un formulaire qui s'affiche dans une fenêtre popup. Après le chargement, le fond est gris, mais l'utilisateur peut faire défiler le fond du contenu de haut et de bas.

Comment puis-je empêcher le fond de défiler?

Exemple ici

le lien' email this quote ' à droite de la capture d'écran pdf.

Merci! Joe

21
demandé sur Joe 2010-02-04 20:53:36

4 réponses

une option est de définir temporairement le overflow propriété hiddenbody, qui permettra de se débarrasser des barres de défilement, mais provoque un petit scintillement lorsque la page est modifié.

l'autre choix est de puiser dans le $(window).scroll() événement et renvoie la valeur false à partir de là. Cela provoquera aussi un peu de clignotement car le navigateur ne réagit pas aussi vite à la fausse déclaration de retour.

Votre meilleur pari est de déplacer votre cliquez sur gestionnaires d'événements dans un fichier séparé et de faire la liaison il y a:

$(function() {
    $('.emailPost').click(function() {
        $(window).scroll(function() { return false; });
        pageTracker._trackPageview('/onclick/emailquote');            
    });
});

cela devrait empêcher une page de défiler. N'oubliez pas de supprimer le lien après la fermeture de la boîte de dialogue, sinon la page ne sera plus scrollable! Vous pouvez supprimer les lie à l'aide de:

$(window).unbind('scroll');
17
répondu Tatu Ulmanen 2010-02-04 18:00:42

cacher la barre de défilement du corps lors de l'ouverture du popup

       document.body.style.overflow = "hidden";

et revenir en arrière lors de la fermeture du popup

       document.body.style.overflow = "visible";
26
répondu sudhAnsu63 2012-08-17 11:55:22

N'utilisez pas la balise # dans vos liens!

Il va essayer de faire défiler jusqu'à l'ancre # mais parce qu'il est vide il va se défiler vers le haut de la page.

modifiez vos liens vers:

<a href="" onclick="javascript: pageTracker._trackPageview('/onclick/emailquote');" class="emailPost">Email this quote</a>

(notez le href="")

0
répondu YesMan85 2010-02-04 17:55:23

ce bloc de code fonctionne pour les appareils mobiles IOS où la question du parchemin est très courante.

$('body').on('touchmove', function(e) {
    if ($('.scroll-disable').has($(e.target)).length) e.preventDefault();
});
$('body').on('shown.bs.modal', function() {
    $(this).addClass('scroll-disable');
});
$('body').on('hidden.bs.modal', function() {
    $(this).removeClass('scroll-disable');
});
0
répondu Madhuri Kulkarni 2017-07-17 11:16:27