【问题标题】:How can I get the dropdown menu to appear on top of the dialog?如何让下拉菜单出现在对话框顶部?
【发布时间】:2016-03-13 13:27:09
【问题描述】:

我在顶部有一个带有一些下拉菜单的导航栏。我也有弹出的对话框(使用 alertifyjs)。我希望下拉菜单能够位于对话框之上。我该怎么做?

我创建了一个JSFiddle 来说明。

HTML

<nav class="navbar navbar-default navbar-static-top">
  <div class="container-fluid">
    <!-- Brand and toggle get grouped for better mobile display -->
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="#">Brand</a>
    </div>

    <!-- Collect the nav links, forms, and other content for toggling -->
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
      <ul class="nav navbar-nav">
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a>
          <ul class="dropdown-menu">
            <li><a href="#">Action</a></li>
            <li><a href="#">Another action</a></li>
            <li><a href="#">Something else here</a></li>
            <li role="separator" class="divider"></li>
            <li><a href="#">Separated link</a></li>
            <li role="separator" class="divider"></li>
            <li><a href="#">One more separated link</a></li>
          </ul>
        </li>
      </ul>
      <ul class="nav navbar-nav navbar-right">
        <li><a href="#">Link</a></li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a>
          <ul class="dropdown-menu">
            <li><a href="#">Action</a></li>
            <li><a href="#">Another action</a></li>
            <li><a href="#">Something else here</a></li>
            <li role="separator" class="divider"></li>
            <li><a href="#">Separated link</a></li>
          </ul>
        </li>
      </ul>
    </div><!-- /.navbar-collapse -->
  </div><!-- /.container-fluid -->
</nav>

Javascript

$(document).ready(function() {
  alertify.alert('hello').set('modal', false).set('moveBounded', true);
});

【问题讨论】:

    标签: javascript css twitter-bootstrap drop-down-menu alertifyjs


    【解决方案1】:

    您需要在 CSS 中将下拉/导航栏上的 z-index 设置为高于模式上设置的值。

    nav.navbar-static-top 
    {
      z-index: 9999;
    }
    

    我检查了您发布的 Fiddle,Modal 的 z-index 设置为 1981,因此 z-index9999 足以将其放置在模态之上。

    根据您的 cmets 关于您想要的结果,不幸的是,由于导航栏的结构方式,没有简单的方法将导航栏放在警报后面,但下拉菜单位于警报上方。所以你最好的选择是按照我上面的建议,让整个导航栏保持在警报之上,但将警报配置为始终清除导航栏。

    【讨论】:

    • 但是对话框在导航后面。
    • @mikeazo 您希望导航栏在警报后面,但只有下拉菜单在警报前面?
    • 是的,就是这个想法。这样,如果警报靠近导航栏,但没有覆盖它,下拉菜单会在警报顶部打开。我玩过的另一件事就是发出警报,这样它就根本无法移动到导航栏上。
    • 导航栏的结构方式,没有简单的方法让导航栏位于警报后面,但下拉菜单位于警报上方。所以你最好的选择是按照我上面的建议,让整个导航栏保持在警报的顶部,但将警报配置为始终清除导航栏。
    • 感谢您为我确认。如果您将其添加到您的答案中,我很乐意接受。
    猜你喜欢
    • 2022-09-23
    • 2016-06-27
    • 1970-01-01
    • 2020-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多