2015-01-22 2 views
24

Я использую bootstrap modal. Когда модальное является открытым фоном, непрозрачность содержимого по умолчанию не изменяется. Я попытался изменить в JS с помощьюКак изменить фон Непрозрачность при открытии мода загрузочного мода

function showModal() { 
document.getElementById("pageContent").style.opacity = "0.5"; 

}

Это работает, но всякий раз, когда модальный закрыта непрозрачности стиль до сих пор остается для PageContent. Но я уверен, что это неправильный способ сделать. Любая помощь оценивается. Благодарю. Кнопка Html которая открывает модальное

<button class="btn glossy-clear" data-toggle="modal" data-target="#modal-display" onclick="showModal()">Clear</button> 

Модальные Кодекс

<div class="modal fade" id="modal-display"> 
    <div class="modal-dialog"> 
    <div class="modal-content"> 
    <div class="modal-header"> 
    <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
     <h4 class="modal-title">Search results</h4> 
    </div> 
    <div class="modal-body"> 
     <div class="container"> 
     <div class="row"> 
      <div class="col-md-5">Hello</div> 
      <div class="col-md-5">i!!!!</div> 
     </div> 
     </div> 
    </div> 
    </div> 
</div> 
</div> 

EDIT:

modal-backdrop div

+0

Спасибо за ответы. Я пробовал все, но все еще не работал. Я понял, что в инструментах разработчика modal-backdrop div добавлен вне тега формы, когда модальный открыт, я не уверен, что это причина. Добавлено изображение на вопрос. – Bhargavi

ответ

45

Я предполагаю, что вы хотите установить непрозрачность модального фона .. .

Установите непрозрачность через CSS

.modal-backdrop 
{ 
    opacity:0.5 !important; 
} 

!important предотвращает непрозрачность от перезаписи - особенно из Bootstrap в этом контексте.

+0

Если я делаю это, даже модальное прозрачно при открытии. Но вы напомнили мне добавить класс модального фона для модального div. После этого теперь фон черный, а не прозрачный. – Bhargavi

+1

Не добавляйте модальный фон к модальному div. Модальным фоном является класс, который bootstrap использует для фона, на котором появляется модальная мода. Вам просто нужно добавить этот CSS на страницу, вот и все. – Hemant

+3

Я использую Bootstrap 3 и добавляю! Важно испортить переход непрозрачности. Этот ответ отлично работает, если вы просто берете важное значение. Вот что я сделал: .modal-backdrop, .modal-backdrop.fade.in { \t непрозрачность: .5 или что угодно; } – dave4jr

9

вы могли бы использовать самозагрузки events :: в

//when modal opens 
$('#yourModal').on('shown.bs.modal', function (e) { 
    $("#pageContent").css({ opacity: 0.5 }); 
}) 

//when modal closes 
$('#yourModal').on('hidden.bs.modal', function (e) { 
    $("#pageContent").css({ opacity: 1 }); 
}) 
+1

Этот метод работал хорошо для я также, я использовал другой выбор для фона, хотя, не уверен в бит #pageContent. Этот код использовался для удаления эффекта затемнения. ' \t \t $ ("# занят покадрово"). На ('shown.bs.modal', функция (е) { \t \t \t $ ('div.modal-фон'). CSS ('непрозрачности' , 0); \t \t}); \t \t $ ("# занят покадрово"). На ('hidden.bs.modal', функция (е) { \t \t \t $ ('div.modal-заставок'). CSS ('непрозрачности', 0,5); \t \t}); ' –

1

После дня борьбы я понял, что высота установки: от 100% до .modal-backdrop.in класс работал. высота: 100% сделана непрозрачность для отображения всей страницы.

+1

Но что делать, если у вас есть страница прокручиваемая? Это не будет охватывать всю страницу, тогда – SoulRayder

1

Просто установка высоты до 100% не будет решением, если у вас есть фоновая страница, высота которой выходит за пределы браузера.

Добавляя к ответу Бхаргави, это решение, когда у вас есть прокручиваемая страница в фоновом режиме.

.modal-backdrop.in 
{ 
    opacity:0.5 !important; 
    position:fixed;// This makes it cover the entire scrollable page, not just browser height 
    height:100%; 
} 
1

Если вы используете меньше версию для компиляции Bootstrap изменить @ модальную-Заставку-непрозрачность в вашем переменных переопределять файл $ модальной-непрозрачность Заставки для СКСА.

3

Проблема с переопределением с использованием !important заключается в том, что вы потеряете затухание, действующее.

Таким образом, реальный лучший трюк, чтобы изменить модальную непрозрачность Заставки, не нарушая эффект FadeIn и без использования бесстыдной!important является использование этого:

.modal-backdrop{ 
    opacity:0; transition:opacity .2s; 
} 
.modal-backdrop.in{ 
    opacity:.7; 
} 

@sass

.modal-backdrop{ 
    opacity:0; 
    &.in{opacity:.7;} 
} 

Простой и чистый.

0

использовать этот код

$("#your_modal_id").on("shown.bs.modal", function(){ 
 
     $('.modal-backdrop.in').css('opacity', '0.9'); 
 
});

1

Только в случае, если кто-то использует Bootstrap 4. Кажется, что мы больше не можем использовать .modal-backdrop.in, но теперь должны использовать .modal-backdrop.show. Эффект Fade сохраняется.

.modal-backdrop.show { 
    opacity: 0.7; 
} 
Смежные вопросы