bootstrap在一个模态框上弹出另一个模态框遮罩层问题

bootstrap3官网明确指出

千万不要在一个模态框上重叠另一个模态框。要想同时支持多个模态框,需要自己写额外的代码来实现。

bootstrap3相关源码分析

开发过程中经常会遇到在一个模态框上弹出另一个模态框,

bootstrap.css中 模态框的z-index为1050

.modal {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1050;
  display: none;
  overflow: hidden;
  -webkit-overflow-scrolling: touch;
  outline: 0;
}
遮罩层z-index为1040

.modal-backdrop {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1040;
  background-color: #000;
}
分析之后的解决方案
那么要想再添加模态框的遮罩层覆盖上一个的模态框,那么这时的遮罩层的z-index必须大于上一个模态框的z-index,并且新的模态框的z-index也必须改变;所以:

var modalLen = $(".modal-backdrop").length,
          zIndex = $(".modal-backdrop").eq(0).css("z-index");
      for(var i = 1; i < modalLen; i ++){
        $(".modal-backdrop").eq(i).css({
          "z-index": zIndex + i * 10 + 1
        });
        $(".modal.in").eq(i).css({
          "z-index": zIndex + (i + 1) * 10 + 1
        });
      }
注意:此种方式的必须注意一点的是  新弹出的模态框div必须在上一个模态框div的后面

把上面的代码放在 bootstrap.js这句代码的前面

var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })






  • 7
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然可以,以下是一个简单的登录页面模态框的例子: ```html <!-- 按钮触发模态框 --> <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#loginModal">登录</button> <!-- 模态框 --> <div class="modal fade" id="loginModal" tabindex="-1" role="dialog" aria-labelledby="loginModalLabel" aria-hidden="true"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="loginModalLabel">登录</h5> <button type="button" class="close" data-dismiss="modal" aria-label="关闭"> <span aria-hidden="true">×</span> </button> </div> <div class="modal-body"> <!-- 登录表单 --> <form> <div class="form-group"> <label for="username">用户名</label> <input type="text" class="form-control" id="username" placeholder="请输入用户名"> </div> <div class="form-group"> <label for="password">密码</label> <input type="password" class="form-control" id="password" placeholder="请输入密码"> </div> </form> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-dismiss="modal">关闭</button> <button type="button" class="btn btn-primary">登录</button> </div> </div> </div> </div> ``` 在这个例子中,我们使用了 Bootstrap模态框组件来创建一个登录页面的弹框。我们在触发模态框的按钮上添加了 `data-toggle="modal"` 和 `data-target="#loginModal"` 属性,这样点击按钮时就会触发模态框的显示。同时,我们在模态框的 HTML 代码中定义了一个 ID 为 `loginModal` 的模态框,并在按钮的 `data-target` 属性中指定了这个模态框的 ID。 在模态框的内容中,我们放置了一个登录表单,包含用户名和密码两个输入框。在模态框的页眉中,我们添加了一个关闭按钮,可以通过点击它来关闭模态框。 请注意,在这个例子中,我们使用了一些 Bootstrap 的辅助类来添加样式,如 `modal`、`modal-dialog`、`modal-content`、`modal-header`、`modal-body`、`modal-footer`、`form-group`、`form-control`、`btn` 等。这些类可以帮助你快速地添加样式和布局。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值