【问题标题】:Bootstrap: $('#myModal').modal('show'); causes screen to go black引导程序:$('#myModal').modal('show');导致屏幕变黑
【发布时间】:2023-03-28 04:00:02
【问题描述】:

在我的正文标签的末尾,我有一个模态:

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

在我的 body 标签的开头,我有一个脚本。在这个脚本中,我试图在点击谷歌地图标记时显示一个模式。但是,当它被点击时,我的网站崩溃了,屏幕呈暗黑色并且没有模式显示。

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');

            });

有趣的是,当通过href 访问此处时,我的模态显示非常好:

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

这一定是 Bootstrap Freelancer 模板中的某种错误。我读过其他帖子说其他人通过编辑 .css 文件解决了类似的问题。

这是我的 bootstrap.css 代码

    .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;
     }

【问题讨论】:

  • 发布你的css代码
  • @priyanshisrivastava 我刚刚发布了它。

标签: javascript jquery twitter-bootstrap bootstrap-modal


【解决方案1】:

试试这个..背景是主要问题..所以我删除了它

// $("#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>

【讨论】:

  • 谢谢,还没解决。你在 .css 代码中到底做了什么改动?
  • $(".modal-backdrop").remove() 添加到 js..once 我遇到了同样的问题,所以我通过添加这个来解决它
  • 当我点击标记时,黑屏消失了,但是我的网站仍然冻结并且模型不显示。
  • 哈哈不抱歉,我的意思是谷歌地图标记,比如window.google.maps.event.addListener(marker, 'click', function () {}
  • 哦,好吧..所以想在那个点击事件上打开这个弹出窗口??就像你在这个问题上发布的一样?您正在展示模型
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-07
  • 2015-09-03
  • 1970-01-01
  • 2020-03-19
  • 2013-10-12
  • 2016-04-03
  • 1970-01-01
相关资源
最近更新 更多