Désactiver le défilement lorsque la fenêtre contextuelle est active
J'ai créé un jQuery popup en suivant un tutoriel en ligne (http://uposonghar.com/popup.html).
À cause de mon faible niveau de connaissance sur jQuery, je ne suis pas capable de le faire fonctionner comme de mes besoins.
Mon problème:
- Je veux désactiver le défilement de la page web tout en popup est active.
- Fond de fondu de couleur de la fenêtre tandis que les actifs ne fonctionne pas à pleine page.
CSS:
body {
background: #999;
}
#ac-wrapper {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(255,255,255,.6);
z-index: 1001;
}
#popup{
width: 555px;
height: 375px;
background: #FFFFFF;
border: 5px solid #000;
border-radius: 25px;
-moz-border-radius: 25px;
-webkit-border-radius: 25px;
box-shadow: #64686e 0px 0px 3px 3px;
-moz-box-shadow: #64686e 0px 0px 3px 3px;
-webkit-box-shadow: #64686e 0px 0px 3px 3px;
position: relative;
top: 150px; left: 375px;
}
JavaScript:
<script type="text/javascript">
function PopUp(){
document.getElementById('ac-wrapper').style.display="none";
}
</script>
HTML:
<div id="ac-wrapper">
<div id="popup">
<center>
<p>Popup Content Here</p>
<input type="submit" name="submit" value="Submit" onClick="PopUp()" />
</center>
</div>
</div>
<p>Page Content Here</p>
source d'informationauteur arifix
Vous devez vous connecter pour publier un commentaire.
Une réponse simple, que vous pouvez utiliser et ne serait pas vous obliger à arrêter le défilement de l'événement serait de définir la position de votre
#ac-wrapper
fixe.par exemple
cette volonté de conserver le récipient de la popup toujours visible (aligné en haut à gauche), mais permettra tout de même de défilement.
Mais défilement de la page avec une fenêtre ouverte, c'est MAL!!! (presque toujours de toute façon)
Raison vous ne voulez pas permettre le défilement est bien, parce que si le popup n'est pas en plein écran ou est semi transparente, les utilisateurs peuvent voir le contenu de défilement derrière la fenêtre contextuelle. En outre, lorsqu'ils fermer le popup ils seront désormais dans une position différente sur la page.
Une solution, c'est que, lorsque vous liez un
click
des événements en javascript pour afficher cette fenêtre popup, également ajouter une classe au corps à l'aide essentiellement de ces règles:Puis, lors de la fermeture de la popup par le déclenchement de l'action ou de l'écarter avec un clic, vous retirez simplement la classe à nouveau, permettant de défilement après le popup a fermé.
Si l'utilisateur fait défiler tout le popup est ouvert, le document ne sera pas de défilement. Lorsque l'utilisateur ferme la fenêtre contextuelle, le défilement deviendra à nouveau disponible et l'utilisateur peut continuer à où il l'avait laissée 🙂
Pour désactiver la barre de défilement:
Cela permet de masquer la barre de défilement
De fond-fade-chose:
J'ai créé mon propre pop-up de dialogue widget qui a un arrière-plan trop. J'ai utilisé le code CSS suivant:
J'ai eu un problème similaire; vouloir désactiver le défilement vertical tout en un "popup" div a été affichée.
La modification de la propriété de dépassement de la
body
fonctionne, mais aussi le désordre avec le document de largeur.J'ai opté jquery pour résoudre cette aide et utilisé un espace réservé pour la barre de défilement.
Cela a été fait sans la lier à la
scroll
événement, ergo cela ne change pas votre position de la barre de défilement ou de provoquer un scintillement 🙂HTML:
CSS:
Jquery:
Espère que cette aide.
Utilisez code ci-dessous pour l'activation et la désactivation de la barre de défilement.
J'ai eu le même problème et a trouvé un moyen de se débarrasser de lui, vous avez juste à arrêter la propagation sur touchmove sur votre élément qui apparaît. Pour moi, c'était en plein écran le menu qui est apparu sur l'écran et vous ne pouvez pas faire défiler, vous pouvez maintenant.