如何使汉堡菜单显示下拉列表

时间:2020-04-21 22:45:24

标签: bootstrap-4 hamburger-menu

我正在学习Bootstrap 4,并且已经成功地将导航栏中的内容转换为了较小的屏幕尺寸,就像我想要的汉堡菜单一样。我现在遇到的问题是成为汉堡菜单的一件事是“浏览”按钮,该按钮在较大的屏幕尺寸下显示下拉列表:

Browse button click

在较小的屏幕尺寸下,它确实变成了汉堡菜单,但是当我单击汉堡菜单时,浏览按钮就出现在它的右侧,而这并不是我想发生的事情:

Hamburger menu click

我试图消除在较小屏幕尺寸上的单击,并让汉堡包菜单在单击时直接显示下拉列表,而不是必须先单击汉堡包菜单,然后单击弹出的浏览按钮。

这是我的HTML:

<!-- browse button hamburger menu button -->
<a class="navbar-toggler border" role="button" data-toggle="collapse" data-target="#navbarBrowseButton">
    <span class="navbar-toggler-icon text-center">
        <i class="fas fa-bars"></i>
    </span>
</a>

<!-- browse button collapse content -->
<div class="collapse navbar-collapse" id="navbarBrowseButton">
    <a class="btn btnBrowse dropdown-toggle" role="button" data-toggle="dropdown">Browse</a>
        <div class="dropdown-menu">
            <a href="#" class="dropdown-item">Games</a>
            <a href="#" class="dropdown-item">Popular Lists</a>

为了简单起见,我取出了ARIA的东西,并尝试给dropdown-menu赋予一个ID,并以不同程度的成功更改data-target,但现在仍然可以按照我的要求进行。

1 个答案:

答案 0 :(得分:1)

您可以使用JS

添加了bg-dark navbar-dark个类,以显示切换器的目的。

$('#navbarBrowseButton').on('shown.bs.collapse', function() {
  $('#navbarBrowseButton .btnBrowse').click();
});

$('#navbarBrowseButton').on('hidden.bs.collapse', function() {
  $('#navbarBrowseButton').collapse('hide');
  $('#navbarBrowseButton').dropdown('hide');
});
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">

<!-- browse button hamburger menu button -->
<a class="navbar-toggler border bg-dark navbar-dark" role="button" data-toggle="collapse" data-target="#navbarBrowseButton">
  <span class="navbar-toggler-icon text-center">
            <i class="fas fa-bars"></i>
        </span>
</a>

<!-- browse button collapse content -->
<div class="collapse navbar-collapse" id="navbarBrowseButton">
  <a class="btn btnBrowse dropdown-toggle" role="button" data-toggle="dropdown">Browse</a>
  <div class="dropdown-menu">
    <a href="#" class="dropdown-item">Games</a>
    <a href="#" class="dropdown-item">Popular Lists</a>
  </div>
</div>

<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>