28

How to remove bootstrap modal overlay for particular modal. when modal appears background has black color with some opacity is there any option for removing that elements...

Manigandaprabhu
  • 409
  • 1
  • 4
  • 9

14 Answers14

51

Add data-backdrop="false" option as attribute to the button which opens the modal.

<!-- Button trigger modal -->
<button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal" data-backdrop="false">
  Launch demo modal
</button>

See modal options

Mario Shtika
  • 1,436
  • 19
  • 31
14

You can also set

.modal-backdrop {
   background-color: transparent;
}

in your css and bootstrap click outside function will still work.

Duka
  • 513
  • 1
  • 6
  • 19
12

I was able to use the following snippet to hide the model overlay by just re-hiding the modal when the shown.bs.modal event is triggered.

<script type="text/javascript">
  $('#modal-id').on('shown.bs.modal', function () {
      $(".modal-backdrop.in").hide();
   })
</script>
mattr-
  • 5,333
  • 2
  • 23
  • 28
Manigandaprabhu
  • 409
  • 1
  • 4
  • 9
11

You can also do it this way if you trigger you modal from javascript, add the data-backdrop="false" to the modal directly Example Below:

 <div class="modal fade" id="notifyModal" data-backdrop="false"
tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" aria-hidden="true">
    <div class="modal-dialog modal-sm">
        <div class="modal-content" id="info_content">
            A Project has been deleted successfully!
        </div>
    </div>
</div>
Okechukwu Obi
  • 409
  • 4
  • 8
7

If you are dealing with bootstrap modal through jquery then better you use below code in your event callback function.

$('.modal-backdrop').remove();
vitthal-gaikwad
  • 1,184
  • 11
  • 13
3

If you using function click in javascript (jquery). You using :

$("#myBtn2").click(function(){
    $("#myModal2").modal({backdrop: false});
});
TungHarry
  • 1,097
  • 11
  • 26
2

The background is fired with the following class: .modal-backdrop with an additional .in class for opacity.

Default values (edit as needed):

.modal-backdrop {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1040;
    background-color: #000;
}
.modal-backdrop.in {
    filter: alpha(opacity=50);
    opacity: .5;
}
Aibrean
  • 6,297
  • 1
  • 22
  • 38
0
$("#myModal").on('hide.bs.modal', function(){
    $('.modal-backdrop').remove()
});

This should work as a charm

pooza
  • 30
  • 5
0

This works for me. You may try this.

$('.close').click();

$(document.body).removeClass("modal-open");

$("modal-backdrop").remove();

https://github.com/valor-software/ngx-bootstrap/issues/853

0

  <script>
    $(document).ready(function(){
  $("button").click(function(){
    $("div").removeClass("modal-backdrop");
  });
});
    </script>
che
  • 61
  • 1
  • 11
  • This does not provide an answer to the question. Once you have sufficient [reputation](https://stackoverflow.com/help/whats-reputation) you will be able to [comment on any post](https://stackoverflow.com/help/privileges/comment); instead, [provide answers that don't require clarification from the asker](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can-i-do-instead). - [From Review](/review/late-answers/29881176) – Procrastinator Sep 22 '21 at 06:07
0

You can use backdropClass, a custom class to append to the modal backdrop (api).

TS

this.modalService.open(MyModalComponent, {
      backdrop: 'static',
      keyboard: false,
      backdropClass: 'no-backdrop'
});

CSS (global style)

.no-backdrop {
  background: transparent;
}
Emeric
  • 6,315
  • 2
  • 41
  • 54
0

I had this issue and i solved it by removing the div with class modal-backdrop. after the ajax success.

$.ajax({
         url: 'Your/URL',
         type: 'POST',
         data: formData, // Instance of FormData()
         contentType: false,
         processData: false,
         headers: {
             'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                   },
         success: function(response) {
              $('.modal-backdrop').remove()
              // Your code here, what you wanna do after the success of your ajax call
                  },
         error: function() {
               console.log('error');
                   },
         complete: function() {
                console.log('complete');
                   }
        })

I'm using : Bootstrap "version": "4.0.5".

0

I had the same problem and found out that ii I simply used javascript to show and hide the modal form and remove the data-target attribute from the button that calls the modal, everything works fine. No need to remove data-backdrop and all of that stuff.

0

Add data-bs-backdrop="false" to modal attributes not the button that triggers the modal.

https://getbootstrap.com/docs/4.0/components/modal/

Tyler2P
  • 2,324
  • 26
  • 22
  • 31