【问题标题】:Bootstrap Dropdown left / right position bug on mobile移动设备上的 Bootstrap Dropdown 左/右位置错误
【发布时间】:2023-03-22 02:10:01
【问题描述】:

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

【问题讨论】:

    标签: html twitter-bootstrap bootstrap-4


    【解决方案1】:

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

    示例 CSS:

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

    切换类:

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

    希望对你有帮助。

    【讨论】:

    • 您好,谢谢。它有一点帮助......现在只有每 4 次或 5 次点击会破坏它。奇怪的是,在打开和关闭菜单后,触摸事件在完全不同的位置上被识别。另一个问题是它看起来不太好......请编辑你的答案:heigth = height 和“expanded-row”没有“。”谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多