J'ai un menu avec plusieurs modaux. Lorsque j'en ouvre un sur un autre, il devient noir en arrière-plan, ce qui est moche… .. Je comprends qu'il me faut changer filter: alpha(opacity=80);
dans .modal-backdrop.fade.in
dans bootstrap.css Mais je dois le changer non pas pour tous les modaux, mais pour certains d'entre eux. Voici le code html pour le premier modal
<div class="modal hide" id="mbusModal">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h3>MBUS</h3>
</div>
<div class="modal-body">
<form class="form-horizontal">
<form class="well form-inline">
<input type="button" class="btn" onclick="$('#dinMbusModal').modal('show'); $('#tabsMbusDin a:last').tab('show');" value="din">
</form>
</div>
<div class="modal-footer">
<a href="#" class="btn" data-dismiss="modal">Закрыть</a>
<a href="#" class="btn btn-primary" onclick="addPort('mbus',$('#mbusDev').val(),$('#mbusSpeed').val()); $('#mbusModal').modal('hide')">Применить</a>
</div>
Ce modal doit changer sa toile de fond:
<div class="modal hide" id="dinMbusModal" style="width: 500px; margin: -250px 0 0 -250px;">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h3>DIN</h3>
</div>
<div class="modal-body">
</div>
<div class="modal-footer">
<a href="#" class="btn" data-dismiss="modal">Закрыть</a>
<a href="#" class="btn btn-primary" onclick="addPort('din_mbus',,); $('#dinMbusModal').modal('hide')">Применить</a>
</div>
</div>
Un peu compliqué par le fait que la toile de fond est générée à la volée par le plugin Modal. Une façon de le faire consiste à ajouter une classe au corps lorsque vous obtenez un événement show, puis à le supprimer du hidden.
Quelque chose comme:
.modal-color-red .modal-backdrop {
background-color: #f00;
}
.modal-color-green .modal-backdrop {
background-color: #0f0;
}
.modal-color-blue .modal-backdrop {
background-color: #00f;
}
$('.modal[data-color]').on('show hidden', function () {
$('body').toggleClass('modal-color-'+ $(this).data('color'));
});
<div class="modal hide fade" id="redModal" data-color="red">...</div>
<div class="modal hide fade" id="greenModal" data-color="green">...</div>
<div class="modal hide fade" id="blueModal" data-color="blue">...</div>
UNIQUEMENT CSS/HTML
JSFiddle: http://jsfiddle.net/szoys6d7/
HTML
<div class="modal hide fade modal2">...</div>
CSS
.modal2.fade.in ~ .modal-backdrop.fade.in {
background-color: #f00; }
Voici le balisage HTML pour votre modal
<div id="my-modal" class="modal hide fade">
....
</div>
Utilisez ce style dans un élément de style de votre fichier html
<style>
#my-modal>.modal-backdrop.fade.in
{
opacity: .1;
}
</style>
et le script
<script type="text/javascript">
$(document).ready(function(){
$("#my-modal").modal({
show: true
});
});
</script>
Pour le bootstrap UI angulaire:
Utilisez backdropClass
Lors de l’initialisation:
$modal.open({templateUrl:'',
controller:'',
backdropClass:''
});
http://angular-ui.github.io/bootstrap/versenced-docs/0.12.0/
Ça m'a pris pour toujours, mais j'ai trouvé un one-liner.
$(window).load(function(){
// remove greying background bootstrap modal effect
$(".modal-backdrop ").attr('class', 'someClass');
});
Le retrait de la classe a supprimé le modal. Mais renommer conserve la fonctionnalité mais supprime le gris en arrière-plan.
Donnez à vos modaux des classes séparées
Et tout ce dont vous avez besoin c'est:
.votre classe {arrière-plan: rgba (0, 0, 0, 0,8); }