【问题标题】:How to dim webpage when hover a navbar just like a bootstrap modal?像引导模式一样悬停导航栏时如何使网页变暗?
【发布时间】:2018-11-08 13:20:41
【问题描述】:

是否可以使用 Bootstrap 在模态打开时使页面变暗时使用的相同过程?

当我悬停引导导航栏时,我希望它使页面变暗。
当然,我不希望导航栏变暗!

modal-dim 是如何工作的?
我可以使用相同的 css 吗?

【问题讨论】:

  • 您应该能够添加一个 100% 宽度和高度位置固定 z-index 的 div,其中只有您的导航具有更高的 z-index 和很少的透明背景才能达到相同的效果
  • 嗯.. 我知道有很多方法可以做到这一点。但是我的问题是我是否可以使用已经存在的 Bootstrap 模态效果?!

标签: jquery css bootstrap-4


【解决方案1】:

您可以使用所有主流浏览器都支持的纯CSS 来做到这一点。

.navbar:hover+.nav-sibling {
  display: block;
  opacity: 0.5;
  background: rgba(0, 0, 0, 1);
  transition: opacity .15s linear;
}

.nav-sibling {
  position: fixed;
  display: none;
  overflow: hidden;
  outline: 0;
  /* equal to the navbar height */
  top: 56px;
  bottom: 0;
  left: 0;
  right: 0;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.1/css/bootstrap.css" rel="stylesheet" />
<nav class="navbar navbar-expand-lg navbar-light bg-light">
  <a class="navbar-brand" href="#">Navbar</a>
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
      </button>

  <div class="collapse navbar-collapse" id="navbarSupportedContent">
    <ul class="navbar-nav mr-auto">
      <li class="nav-item active">
        <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Link</a>
      </li>
      <li class="nav-item dropdown">
        <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
              Dropdown
            </a>
        <div class="dropdown-menu" aria-labelledby="navbarDropdown">
          <a class="dropdown-item" href="#">Action</a>
          <a class="dropdown-item" href="#">Another action</a>
          <div class="dropdown-divider"></div>
          <a class="dropdown-item" href="#">Something else here</a>
        </div>
      </li>
      <li class="nav-item">
        <a class="nav-link disabled" href="#">Disabled</a>
      </li>
    </ul>
    <form class="form-inline my-2 my-lg-0">
      <input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
      <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
    </form>
  </div>
</nav>
<div class="nav-sibling">

</div>
<footer class=" container-fluid bg-dark text-white py-5">
  <div class="row">
    <div class="col-12">
      <h6>Lorem ipsum</h6>
      <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam eget sapien dolor. Nam aliquam augue ante, et sodales felis vulputate iaculis.</p>
    </div>
  </div>
</footer>

nav-sibling 与引导模式代码相同,除了 top 属性。


更新

Opacity 设置元素及其所有子元素的不透明度值;而 RGBA 仅为单个声明设置不透明度值。 - StackOverflow - opacity vs RGBA

最好将01 之间的数字用于alpha channel 而不是opacity。在下面的代码中,我使用了0.9

.navbar:hover+.nav-sibling {
  display: block;
  background-color: rgba(0, 0, 0, 0.9);
  transition: all .15s linear;
}

【讨论】:

  • 谢谢!效果很好!
【解决方案2】:

不,您不能使用现有的 Bootstrap 模态效果,因为这会使页面上的所有内容(包括导航栏)变暗。

【讨论】:

  • 你应该删除你的答案,因为它不是真的。你可以使用rgba
  • 添加设置 rgba 颜色的 CSS 是添加新效果,而不是使用现有的 Bootstrap 模态效果作为问题。
猜你喜欢
  • 2018-04-18
  • 2020-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-30
  • 2019-07-22
  • 2017-12-15
  • 2023-03-18
相关资源
最近更新 更多