javascript - Bootstrap 模式 : only when using the fade class 中的滚动问题

标签 javascript css twitter-bootstrap

我花了好几个小时调试这个问题。这是我正在做的:

  • 我打开一个 Bootstrap 模式
  • 在该模态中,我打开另一个模态(我使用 data-dismiss 属性确保先关闭现有模态)
  • 如果第二个模态非常大并且需要滚动,那么这将失败。不是滚动模式,而是滚动背景。

用于从现有模态中打开新模态的代码:

<button type="button" class="btn btn-secondary" data-toggle="modal" data-dismiss="modal" data-target="#modal2">Open modal 2</button>

我发现当我将“模态淡入淡出”类应用于模态时会出现问题。如果我删除“淡入淡出”类,那么它一切正常!但我真的很想使用淡入淡出类。这应该是这样的吗?或者有解决方法吗?下面是一个完整的工作示例:

.modal-body {
      height: 1000px
    }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

  <!-- Latest compiled and minified CSS -->
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css" integrity="sha384-HSMxcRTRxnN+Bdg0JdbxYKrThecOKuH5zCYotlSAcp1+c8xmyTe9GYg1l9a69psu" crossorigin="anonymous">

  <!-- Latest compiled and minified JavaScript -->
  <script src="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js" integrity="sha384-aJ21OjlMXNL5UyIl/XNwTMqvzeRMZH2w8c5cRVpzpU8Y5bApTppSuUkhZXN0VxHd" crossorigin="anonymous"></script>


<body>

  <button data-toggle="modal" data-target="#modal1">Open modal</button>

  <div class="modal fade" tabindex="-1" role="dialog" id="modal1">
    <div class="modal-dialog" role="document">
      <div class="modal-content">
        <div class="modal-header">
          <h5 class="modal-title">Modal 1</h5>
          <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                <span aria-hidden="true">&times;</span>
              </button>
        </div>
        <div class="modal-body">
          <p>Modal body text goes here.</p>
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-secondary" data-toggle="modal" data-dismiss="modal" data-target="#modal2">Open modal 2</button>
        </div>
      </div>
    </div>
  </div>
  <div class="modal fade" tabindex="-1" role="dialog" id="modal2">
    <div class="modal-dialog" role="document">
      <div class="modal-content">
        <div class="modal-header">
          <h5 class="modal-title">Modal 2</h5>
          <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                <span aria-hidden="true">&times;</span>
              </button>
        </div>
        <div class="modal-body">
          <p>Modal body text goes here.</p>
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-secondary" data-toggle="modal" data-dismiss="modal" data-target="#modal1">Open modal 1</button>
        </div>
      </div>
    </div>
  </div>

</body>

</html>

最佳答案

.modal-body {
      height: 1000px
    }
    #modal2{
      overflow-y:auto;
    }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

  <!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css" integrity="sha384-HSMxcRTRxnN+Bdg0JdbxYKrThecOKuH5zCYotlSAcp1+c8xmyTe9GYg1l9a69psu" crossorigin="anonymous">

  <!-- Latest compiled and minified JavaScript -->
  <script src="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js" integrity="sha384-aJ21OjlMXNL5UyIl/XNwTMqvzeRMZH2w8c5cRVpzpU8Y5bApTppSuUkhZXN0VxHd" crossorigin="anonymous"></script>


<button data-toggle="modal" data-target="#modal1">Open modal</button>

  <div class="modal fade" tabindex="-1" role="dialog" id="modal1">
    <div class="modal-dialog" role="document">
      <div class="modal-content">
        <div class="modal-header">
          <h5 class="modal-title">Modal 1</h5>
          <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                <span aria-hidden="true">&times;</span>
              </button>
        </div>
        <div class="modal-body">
          <p>Modal body text goes here.</p>
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-secondary" data-toggle="modal" data-dismiss="modal" data-target="#modal2">Open modal 2</button>
        </div>
      </div>
    </div>
  </div>
  <div class="modal fade" tabindex="-1" role="dialog" id="modal2">
    <div class="modal-dialog" role="document">
      <div class="modal-content">
        <div class="modal-header">
          <h5 class="modal-title">Modal 2</h5>
          <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                <span aria-hidden="true">&times;</span>
              </button>
        </div>
        <div class="modal-body">
          <p>Modal body text goes here.</p>
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-secondary" data-toggle="modal" data-dismiss="modal" data-target="#modal1">Open modal 1</button>
        </div>
      </div>
    </div>
  </div>

如果你在这里谈论解决方法,那么你可以做这样的事情

#modal2{
  overflow-y:auto;
}

这是工作 JSFiddle

关于javascript - Bootstrap 模式 : only when using the fade class 中的滚动问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55924628/

相关文章:

javascript - 具有反应的 Css 模块

javascript - 如何获取 Twitter Bootstrap 按钮组中选定按钮的值

javascript - 编译后的 typescript 文件位于 Angular 2 项目中的什么位置?

javascript - 使用 JavaScript/HTML/CSS 开发 OSX 应用程序

javascript - 尝试将值从 Jquery 传递到 PHP 时未定义索引名称

javascript - jQuery :hover selector not working as expected in Edge and Firefox

javascript - 如何在img标签中使用key属性?

html - 如何在 bootstrap 3 中使用 bootstrap-theme.css?

jquery - 缩放背景图像

javascript - Bootstrap 开关无法处理 Ajax 数据