J'essaie de faire glisser un modal bootstrap n'importe où sur la page et lorsque le modal est ouvert, je veux que l'utilisateur puisse continuer à utiliser la page.
J'ai réussi à rendre le modal déplaçable avec jquery-ui mais je ne peux pas rendre la page utilisable tant que le modal est ouvert. J'ai essayé plusieurs suggestions avec CSS, mais aucune ne fonctionne aussi bien que je le souhaiterais.
Cela rend la page utilisable mais le modal est limité à une partie de la page: Bootstrap Modal - permet de cliquer sur l’arrière-plan sans fermer le modal
Identique à celui-ci: Activer l’arrière-plan à l’ouverture du popup modal bootstrap
Est-il possible d'y parvenir avec bootstrap modal?
C'est mon JS:
$('#btn1').click(function() {
var modalDiv = $('#myModal');
modalDiv.modal({backdrop: false, show: true});
$('.modal-dialog').draggable({
handle: ".modal-header"
});
});
Lien JSFiddle: https://jsfiddle.net/ntLpg6hw/1/
C'est vraiment cool!
Je pense que tout ce dont vous avez besoin est un peu de css.
#myModal {
position: relative;
}
.modal-dialog {
position: fixed;
width: 100%;
margin: 0;
padding: 10px;
}
Vous devez également ajouter du jQuery pour réinitialiser votre position modale en cliquant sur le bouton.
$('#btn1').click(function() {
// reset modal if it isn't visible
if (!($('.modal.in').length)) {
$('.modal-dialog').css({
top: 0,
left: 0
});
}
$('#myModal').modal({
backdrop: false,
show: true
});
$('.modal-dialog').draggable({
handle: ".modal-header"
});
});
Découvrez le Fiddle
Note: Facebook fait maintenant quelque chose de similaire avec les vidéos de newsfeed externes. Si vous faites défiler une vidéo tout en la visionnant, cela devient une vidéo glisser-déposer.
Fondamentalement, leur conteneur vidéo popup parent est position: relative
et l’enfant direct de ce conteneur est position: fixed
. La même stratégie est utilisée ici.