【问题标题】:Bootstrap 5 dim background on navbar toggle导航栏切换上的 Bootstrap 5 暗背景
【发布时间】:2021-12-16 19:25:39
【问题描述】:

我在我的网页上使用 Bootstrap 5 导航栏。单击(展开)汉堡菜单时,是否有一种简单的方法可以使背景(页面)变暗?并在汉堡菜单折叠时删除暗淡。就像模态淡出时页面变暗一样。

<nav class="navbar navbar-expand-lg navbar-light bg-light">
  <div class="container-fluid">
    <a class="navbar-brand" href="#">Navbar</a>
    <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="navbarNav">
      <ul class="navbar-nav">
        <li class="nav-item">
          <a class="nav-link active" aria-current="page" href="#">Home</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">Features</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">Pricing</a>
        </li>
        <li class="nav-item">
          <a class="nav-link disabled" href="#" tabindex="-1" aria-disabled="true">Disabled</a>
        </li>
      </ul>
    </div>
  </div>
</nav>

【问题讨论】:

    标签: css twitter-bootstrap bootstrap-modal


    【解决方案1】:

    下次尝试在您的帖子中添加 JSfiddle 或 codepen 示例,以便更轻松地测试解决方案。

    现在我想出了这个简单的 JQuery 解决方案,但我不确定它是否适用于您的代码,因为我尚未对其进行测试。理论上它应该可以工作。

    jQuery

     $(document).ready(function(){
        $('.navbar > button').on('click', function(){
            $('body').toggleClass('color-changed');
        });
        });
    

    CSS

    .color-changed{
    background-color:grey!important;
    }
    

    解决方案 2

    $(document).ready(function(){
        $('.navbar > button').on('click', function(){
            $('div, body, html').not('.navbar').toggleClass('color-changed');
        });
        });
    

    CSS

    .color-changed{
    background-color: rgba(0, 0, 0, 0.5);
    }
    

    解决方案 3

    将此 HTML 代码添加到 .html 文件中的某处

    <div class="color-changed">
    

    添加这个 CSS

    .color-changed{
      display:none;
    width:100%; height:100%; position:absolute;
    z-index:-1;
    background-color: rgba(0, 0, 0, 0.5);
    }
    

    jQuery

    $(document).ready(function(){
        $('.navbar button').on('click', function(){
            $('.color-changed').toggle();
        });
        });
    

    【讨论】:

    • JQuery 工作,CSS 将背景颜色更改为灰色。但是,我希望整个页面变暗,除了导航栏。就像打开模式时页面变暗一样。
    • 我添加了 2 个额外的可能解决方案。看看这些是否适合你。
    猜你喜欢
    • 2022-10-20
    • 2014-11-17
    • 1970-01-01
    • 2020-04-07
    • 1970-01-01
    • 2012-12-14
    • 1970-01-01
    • 2018-01-22
    • 1970-01-01
    相关资源
    最近更新 更多