grantespo
grantespo

Reputation: 2269

Bootstrap: $('#myModal').modal('show'); causes screen to go black

At the end of my body tag, I have a modal:

<div class="portfolio-modal mfp-hide" id="myModal">
  <div class="portfolio-modal-dialog bg-white">
    <a class="close-button d-none d-md-block portfolio-modal-dismiss" href="#">
      <i class="fa fa-3x fa-times"></i>
    </a>
    <div class="container text-center">
      <div class="row">
        <div class="col-lg-8 mx-auto">
          <hr class="star-dark mb-5">
        </div>
      </div>
    </div>
  </div>
</div>

And at the beginning of my body tag, I have a script. In this script, I'm trying to show a modal when a google maps marker is clicked. However, when it is clicked, my website crashes with a dim-black screen and no modal shows.

window.google.maps.event.addListener(marker, 'click', function () {
               // $("#myModal").removeClass("in");
               //$("#myModa").remove();
               //$('body').removeClass('modal-open');
               // $('body').css('padding-right', '');
               // $('#myModal').modal('show');
               // $('.myModal').modal('show');

                $('#myModal').modal('show');

            });

Interestingly, my modal shows perfectly fine when accessing via href here:

<div class="col-md-3">
        <a class="portfolio-item d-block mx-auto" href="#myModal">
          <div class="portfolio-item-caption d-flex position-absolute h-100 w-100">
          </div>
        </a>
      </div>

This has to be some type of bug within the Bootstrap Freelancer template. I've read other posts saying that others fixed a similar issue by editing .css files.

Here is my bootstrap.css code

    .modal-open {
  overflow: hidden;
}

.modal-open .modal {
  overflow-x: hidden;
  overflow-y: auto;
}

.modal {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1050;
  display: none;
  overflow: hidden;
  outline: 0;
}

.modal-dialog {
  position: relative;
  width: auto;
  margin: 0.5rem;
  pointer-events: none;
}

.modal.fade .modal-dialog {
  transition: -webkit-transform 0.3s ease-out;
  transition: transform 0.3s ease-out;
  transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;
  -webkit-transform: translate(0, -25%);
  transform: translate(0, -25%);
}

@media screen and (prefers-reduced-motion: reduce) {
  .modal.fade .modal-dialog {
    transition: none;
  }
}

.modal.show .modal-dialog {
  -webkit-transform: translate(0, 0);
  transform: translate(0, 0);
}

.modal-dialog-centered {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
  align-items: center;
  min-height: calc(100% - (0.5rem * 2));
}

.modal-dialog-centered::before {
  display: block;
  height: calc(100vh - (0.5rem * 2));
  content: "";
}

.modal-content {
  position: relative;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
  flex-direction: column;
  width: 100%;
  pointer-events: auto;
  background-color: #fff;
  background-clip: padding-box;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 0.3rem;
  outline: 0;
}

.modal-backdrop {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1040;
  background-color: #000;
}

.modal-backdrop.fade {
  opacity: 0;
}

.modal-backdrop.show {
  opacity: 0.5;
}

.modal-header {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: start;
  align-items: flex-start;
  -ms-flex-pack: justify;
  justify-content: space-between;
  padding: 1rem;
  border-bottom: 1px solid #e9ecef;
  border-top-left-radius: 0.3rem;
  border-top-right-radius: 0.3rem;
}

.modal-header .close {
  padding: 1rem;
  margin: -1rem -1rem -1rem auto;
}

.modal-title {
  margin-bottom: 0;
  line-height: 1.5;
}

    .modal-body {
     position: relative;
     -ms-flex: 1 1 auto;
     flex: 1 1 auto;
     padding: 1rem;
    }

    .modal-footer {
      display: -ms-flexbox;
      display: flex;
     -ms-flex-align: center;
      align-items: center;
     -ms-flex-pack: end;
     justify-content: flex-end;
     padding: 1rem;
     border-top: 1px solid #e9ecef;
    }

     .modal-footer > :not(:first-child) {
     margin-left: .25rem;
    }

      .modal-footer > :not(:last-child) {
      margin-right: .25rem;
     }

      .modal-scrollbar-measure {
      position: absolute;
      top: -9999px;
      width: 50px;
      height: 50px;
      overflow: scroll;
    }

     @media (min-width: 576px) {
        .modal-dialog {
        max-width: 500px;
        margin: 1.75rem auto;
     }
       .modal-dialog-centered {
        min-height: calc(100% - (1.75rem * 2));
     }
       .modal-dialog-centered::before {
       height: calc(100vh - (1.75rem * 2));
     }
      .modal-sm {
      max-width: 300px;
     }

Upvotes: 1

Views: 4734

Answers (1)

p u
p u

Reputation: 1455

Try this..backdrop was main issue..so i removed it

// $("#myModal").removeClass("in");
               //$("#myModa").remove();
               //$('body').removeClass('modal-open');
               // $('body').css('padding-right', '');
               // $('#myModal').modal('show');
               // $('.myModal').modal('show');

               $('#myModal').modal('show');
               $(".modal-backdrop").remove();
.modal-open {
  overflow: hidden;
}

.modal-open .modal {
  overflow-x: hidden;
  overflow-y: auto;
}

.modal {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1050;
  display: none;
  overflow: hidden;
  outline: 0;
}

.modal-dialog {
  position: relative;
  width: auto;
  margin: 0.5rem;
  pointer-events: none;
}

.modal.fade .modal-dialog {
  transition: -webkit-transform 0.3s ease-out;
  transition: transform 0.3s ease-out;
  transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;
  -webkit-transform: translate(0, -25%);
  transform: translate(0, -25%);
}

@media screen and (prefers-reduced-motion: reduce) {
  .modal.fade .modal-dialog {
    transition: none;
  }
}

.modal.show .modal-dialog {
  -webkit-transform: translate(0, 0);
  transform: translate(0, 0);
}

.modal-dialog-centered {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
  align-items: center;
  min-height: calc(100% - (0.5rem * 2));
}

.modal-dialog-centered::before {
  display: block;
  height: calc(100vh - (0.5rem * 2));
  content: "";
}

.modal-content {
  position: relative;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
  flex-direction: column;
  width: 100%;
  pointer-events: auto;
  background-color: #fff;
  background-clip: padding-box;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 0.3rem;
  outline: 0;
}

.modal-backdrop {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1040;
  background-color: #000;
}

.modal-backdrop.fade {
  opacity: 0;
}

.modal-backdrop.show {
  opacity: 0.5;
}

.modal-header {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: start;
  align-items: flex-start;
  -ms-flex-pack: justify;
  justify-content: space-between;
  padding: 1rem;
  border-bottom: 1px solid #e9ecef;
  border-top-left-radius: 0.3rem;
  border-top-right-radius: 0.3rem;
}

.modal-header .close {
  padding: 1rem;
  margin: -1rem -1rem -1rem auto;
}

.modal-title {
  margin-bottom: 0;
  line-height: 1.5;
}

    .modal-body {
     position: relative;
     -ms-flex: 1 1 auto;
     flex: 1 1 auto;
     padding: 1rem;
    }

    .modal-footer {
      display: -ms-flexbox;
      display: flex;
     -ms-flex-align: center;
      align-items: center;
     -ms-flex-pack: end;
     justify-content: flex-end;
     padding: 1rem;
     border-top: 1px solid #e9ecef;
    }

     .modal-footer > :not(:first-child) {
     margin-left: .25rem;
    }

      .modal-footer > :not(:last-child) {
      margin-right: .25rem;
     }

      .modal-scrollbar-measure {
      position: absolute;
      top: -9999px;
      width: 50px;
      height: 50px;
      overflow: scroll;
    }

     @media (min-width: 576px) {
        .modal-dialog {
        max-width: 500px;
        margin: 1.75rem auto;
     }
       .modal-dialog-centered {
        min-height: calc(100% - (1.75rem * 2));
     }
       .modal-dialog-centered::before {
       height: calc(100vh - (1.75rem * 2));
     }
      .modal-sm {
      max-width: 300px;
     }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<div class="portfolio-modal mfp-hide modal fade" id="myModal" role="dialog">
<div class="modal-dialog">
  <div class="portfolio-modal-dialog bg-white">
   <div class="modal-header">
    <a class="close-button d-none d-md-block portfolio-modal-dismiss" href="#">
      <i class="fa fa-3x fa-times"></i>
    </a>
    </div>
     <div class="modal-body">
    <div class="container text-center">
      <div class="row">
        <div class="col-lg-8 mx-auto">
        helloooo
          <hr class="star-dark mb-5">
        </div>
      </div>
      </div>
    </div>
    </div>
  </div>
</div>

Upvotes: 3

Related Questions