jQuery simplemodal désactiver le défilement
J'ai plus de 2000 pixels de défilement de contenu sur une page.
Si l'utilisateur clique sur un div
un défilement de contenu s'affiche dans une simplemodal fenêtre. Maintenant, mon client veut faire la page d'origine non-défilement tandis que la fenêtre modale. (Évidemment, le modal doit être encore défilement.)
Est-il même possible?
Edit: j'ai essayé de vos suggestions. Fondamentalement, il fonctionne, mais le problème est un peu compliqué:
$(".foReadMoreLink a").click(function(){
if ($('#modalBox').length == 0)
$('body').append('<div style="display:none" id="modalBox"></div>')
$('body').css({'overflow':'hidden'});
$.post('jquery/loadarticle.php',{id:$(this).attr('id')},function(data){
$('#modalBox').html(data).modal({overlayClose:'true'});
})
return false;
});
- Je utiliser return false sur les liens pour les robots et les utilisateurs sans JavaScript (oui, c'est 2%) peut ouvrir les articles. Avec le code ci-dessus, il fonctionne comme prévu, mais après la fermeture de l'modal-je avoir de retour de la barre de défilement, mais ce code ne fonctionne pas:
$(".foReadMoreLink a").click(function(){
if ($('#modalBox').length == 0)
$('body').append('<div style="display:none" id="modalBox"></div>')
$('body').css({'overflow':'hidden'});
$.post('jquery/loadarticle.php',{id:$(this).attr('id')},function(data){
$('#modalBox').html(data).modal({onClose:function(){$('body').css({'overflow':'auto'})},overlayClose:'true'});
})
return false;
});
source d'informationauteur smds45
Vous devez vous connecter pour publier un commentaire.
Dans votre script pour ouvrir votre modal:
Et sur fermer:
(HTML et le corps sont nécessaires, comme les barres de défilement sont rattachés à différentes parties du navigateur selon ce que vous utilisez)
Tourner les barres de défilement sur et en dehors en résulte que le contenu de se déplacer et de la superposition de ne plus couvrir la totalité de la fenêtre. Voici comment résoudre le problème.
Utilisation
De l'appliquer à la page lorsque la boîte de dialogue modale est ouvert et l'enlever quand le dialogue est détruit. Cela permet de masquer votre barre de défilement.
J'ai trouvé
overflow:hidden
n'est pas très joli, car il masque le contenu derrière le semi-transparant superposition si la page défile à mi-chemin.Je suis venu avec le suivant, plutôt élaborer une solution. Il désactive le défilement de tous les possibles détectable façons que j'ai trouvé. Et met le scrollposition droit en arrière à l'ancienne position si la page était encore défile en quelque sorte.
Cette option fonctionne comme un charme:
Dans mon cas dans la balise
<a>
paramhref = "#"
.Donc solution: