首页 > 解决方案 > 移动设备上的 Bootstrap Dropdown 左/右位置错误

问题描述

我在我们的 Web 应用程序中有一个难以理解的问题。我已将页面减少到最低限度,这里是:

https://www.aschemeier.net/bug1.html

在桌面上一切正常。当我在 Firefox 浏览器(屏幕尺寸设置为 iPhone)或 Android 智能手机(Chrome 浏览器)上测试页面时,当我打开底部的下拉菜单时出现显示错误。在桌面上的移动仿真中,点击几下大约 200px 后,触摸输入被注册,在智能手机上,图片跳起来,你不能再向下滚动了。如果我降低红框容器的高度,它会从某个限制开始工作。如果我不打开左侧的菜单(dropleft)也没有问题,但此时我需要这个功能。

我希望有一个人可以帮助我。谢谢

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

  <!-- Alle globalen, externen Javascript Dateien -->

  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

  <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.bundle.min.js" integrity="sha384-1CmrxMRARb6aLqgBO7yyAxTOQE2AKb9GfXnEo760AUcUmFx3ibVJJAzGytlQcNXd" crossorigin="anonymous"></script>

  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">

  <title>bug sample</title>


</head>

<body>
  <div class="container mb-5 mt-4">





    <div class="card">
      <div class="card-body" style="height:1000px; border:2px solid #f00;"></div>
    </div>


    <div class="mt-4">

      <div class="row">
        <div class="col-md-1 col-4">AB</div>
        <div class="col-md-2 col-4">AB</div>

        <div class="col-md-1 col-4">
          <!-- Split dropleft button -->
          <div class="btn-group">
            <div class="btn-group dropleft" role="group">
              <button type="button" class="btn btn-secondary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                              <span class="sr-only">Toggle Dropleft</span>
                            </button>
              <div class="dropdown-menu">
                <!-- Dropdown menu links -->
              </div>
            </div>
            <button type="button" class="btn btn-secondary">
                            Split dropleft
                          </button>
          </div>
        </div>
      </div>
    </div>
  </div>
</body>

</html>

标签: htmltwitter-bootstrapbootstrap-4

解决方案


我会通过将一个expander类分配给父类并在每次单击按钮时row切换类来处理它。expander

示例 CSS:

.expanded-row {
    min-height:30vh;
}

切换类:

$( ".dropdown-toggle" ).click(function() {
  $( ".row" ).toggleClass( "expanded-row" );
});

我希望它有所帮助。


推荐阅读