Подтвердить что ты не робот

Bootstrap: изменение непрозрачности фонового фона только для определенных модалов

У меня есть меню с несколькими модалами. Когда я открываю один над другим, он поворачивает backgrount в черный цвет, что является уродливым. Я понимаю, что мне нужно изменить filter: alpha(opacity=80); в .modal-backdrop.fade.in в bootstrap.css. Но мне нужно изменить его не для всех модалов, только для некоторых из них. Здесь html-код для первого модального

    <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>

Этот модальный должен изменить свой фон:

    <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>
4b9b3361

Ответ 1

Немного усложняется тем фактом, что фон создается модульным плагином "на лету". Один из возможных способов сделать это - добавить класс в тело, когда вы получите событие показать, а затем удалите его на скрытом.

Что-то вроде:

CSS

.modal-color-red .modal-backdrop {
  background-color: #f00;
}
.modal-color-green .modal-backdrop {
  background-color: #0f0;
}
.modal-color-blue .modal-backdrop {
  background-color: #00f;
}

JS

$('.modal[data-color]').on('show hidden', function () {
  $('body').toggleClass('modal-color-'+ $(this).data('color'));
});

HTML

<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>

JSFiddle

Ответ 2

ТОЛЬКО 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; }

Ответ 3

Здесь html-разметка для вашего модального

<div id="my-modal" class="modal hide fade">
    ....
</div>

Используйте этот стиль внутри элемента стиля в вашем html файле

<style>
    #my-modal>.modal-backdrop.fade.in
    {
        opacity: .1; 
    }
</style>

и script

<script type="text/javascript">
    $(document).ready(function(){
        $("#my-modal").modal({
            show: true
        });
    });
</script>

Ответ 5

Дайте вашим модалам отдельные классы

И все, что вам нужно, это:

.yourclass {background: rgba (0, 0, 0, 0.8); }

Ответ 6

Взял меня навсегда, но я нашел один лайнер.

$(window).load(function(){
    // remove greying background bootstrap modal effect
    $(".modal-backdrop ").attr('class', 'someClass');

});

Удаление класса удалено из модального. Но переименование его сохраняет функциональность, но избавляет от зрелости фона.