Что то вроде:
$('.modal').on("hidden.bs.modal", function (e) {
if($('.modal:visible').length)
{
$('.modal-backdrop').first().css('z-index', parseInt($('.modal:visible').last().css('z-index')) - 10);
$('body').addClass('modal-open');
}
}).on("show.bs.modal", function (e) {
if($('.modal:visible').length)
{
$('.modal-backdrop.in').first().css('z-index', parseInt($('.modal:visible').last().css('z-index')) + 10);
$(this).css('z-index', parseInt($('.modal-backdrop.in').first().css('z-index')) + 10);
}
});
Ещё решение:
$(document).ready(function(){
$('.modal').on('show.bs.modal', function () {
if ($(document).height() > $(window).height()) {
// no-scroll
$('body').addClass("modal-open-noscroll");
}
else {
$('body').removeClass("modal-open-noscroll");
}
})
$('.modal').on('hide.bs.modal', function () {
$('body').removeClass("modal-open-noscroll");
})
})
И Css
body.modal-open-noscroll {
margin-right: 0!important;
overflow: hidden;
}
.modal-open-noscroll .navbar-fixed-top, .modal-open .navbar-fixed-bottom {
margin-right: 0!important;
}