Múltiplas Modais
by Ivan Ferrer
HTML
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.0/css/bootstrap.min.css">
<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.0/js/bootstrap.min.js"></script>
<h2>Exemplo de modal dentro de modal dentro de modal...</h2>
<a data-toggle="modal" href="#myModal" class="btn btn-primary">Abrir modal 1</a>
<div class="modal fade" id="myModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title">Modal 1</h4>
</div>
<div class="container"></div>
<div class="modal-body">
<p><br><br>Começando a abrir os modais, clica no botão aí...</p>
<a data-toggle="modal" href="#myModal2" class="btn btn-primary">Abrir modal 2</a>
</div>
<div class="modal-footer"> <a href="#" data-dismiss="modal" class="btn btn-default">Fechar</a>
<a href="#" class="btn btn-primary">Finalizar</a>
</div>
</div>
</div>
</div>
<div class="modal fade rotate" id="myModal2">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title">Modal 2</h4>
</div>
<div class="container"></div>
<div class="modal-body">
<p><br><br>Então, entendeu que aqui entra o conteúdo do modal 2?</p>
<a data-toggle="modal" href="#myModal3" class="btn btn-primary">Abrir modal 3</a>
</div>
<div class="modal-footer"> <a href="#" data-dismiss="modal" class="btn btn-default">Fechar</a>
<a href="#" class="btn btn-primary">Finalizar</a>
</div>
</div>
</div>
</div>
<div class="modal fade" id="myModal3">
<div...
CSS
/* crazy batman newspaper spinny thing */
.rotate {
transform:rotate(180deg);
transition:all 0.5s;
}
.rotate.in {
transform:rotate(1800deg);
transition:all 1.5s;
}
JavaScript
$(document).ready(function () {
$('#openBtn').click(function () {
$('#myModal').modal()
});
$('.modal')
.on({
'show.bs.modal': function() {
var idx = $('.modal:visible').length;
$(this).css('z-index', 1040 + (10 * idx));
var url = $(this).find('[data-url]').data('url');
if (url != undefined && url != '') {
var id = $(this).attr('id');
$('#'+id+' .modal-body').load(url);
}
},
'shown.bs.modal': function() {
var idx = ($('.modal:visible').length) - 1; // raise backdrop after animation.
$('.modal-backdrop').not('.stacked')
.css('z-index', 1039 + (10 * idx))
.addClass('stacked');
},
'hidden.bs.modal': function() {
if ($('.modal:visible').length > 0) {
// restore the modal-open class to the body element, so that scrolling works
// properly after de-stacking a modal.
setTimeout(function() {
$(document.body).addClass('modal-open');
}, 0);
}
}
});
});