Bootstrap 3模态在打开时创建滚动条

Nat*_*ate 16 twitter-bootstrap twitter-bootstrap-3

我第一次尝试使用Bootstrap,我遇到了模态对话框的问题.使用此页面上的示例代码,当打开模态时,会出现一个滚动条,它也会将页面上的内容向左移动.

码:

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

<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
        <h4 class="modal-title" id="myModalLabel">Modal title</h4>
      </div>
      <div class="modal-body">
        ...
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary">Save changes</button>
      </div>
    </div><!-- /.modal-content -->
  </div><!-- /.modal-dialog -->
</div><!-- /.modal -->
Run Code Online (Sandbox Code Playgroud)

JSFIDDLE:http://jsfiddle.net/WqRBP/

我正在寻找的很多网站都使用Bootstrap而且他们没有这个问题,所以有什么问题可以轻松解决吗?

编辑:滚动条出现在Chrome和IE浏览器中,我还没有在其他浏览器中测试过.

这是我在JSFIDDLE中看到的:

在此输入图像描述

在此输入图像描述

Nat*_*ate 34

LVarayut的回答让我朝着正确的方向前进,我最终使用的是:

body.modal-open, .modal-open .navbar-fixed-top, .modal-open .navbar-fixed-bottom {
    margin-right: 0;
}

.modal {
    overflow-y: auto;
}
Run Code Online (Sandbox Code Playgroud)

  • 我将`margin-right:0`替换为`overflow-y:auto;`并且它有效. (2认同)
  • @tom你有没有在滚动条页面上测试它?对我来说,Billy Chan的改变导致有两个滚动条. (2认同)

lva*_*yut 16

出现问题的原因Twitter Bootstrap是打开模态时始终将页面向左移15px.您可以通过将页面向右移动来解决此问题margin-right: -15px.这可以通过使用事件来完成show.bs.modal,并hidden.bs.modal通过提供Bootstrap's modal.

$('#myModal').bind('hidden.bs.modal', function () {
  $("html").css("margin-right", "0px");
});
$('#myModal').bind('show.bs.modal', function () {
  $("html").css("margin-right", "-15px");
});
Run Code Online (Sandbox Code Playgroud)

的jsfiddle


供参考:

show.bs.modal:调用show实例方法时,此事件立即触发.如果由单击引起,则单击的元素可用作事件的relatedTarget属性.

hidden.bs.modal:当模态完成对用户的隐藏时将触发此事件(将等待CSS转换完成)​​.

参考