如何修复点击后闪烁的导航栏

How to fix blinking navbar after click

本文关键字:导航 闪烁 何修复      更新时间:2023-09-26

我尝试使用这个解决方案(点击时隐藏推特引导导航折叠)来在点击时自动隐藏导航折叠。当导航被折叠时,它工作正常,但当我在桌面上使用网站时(确切地说,当导航没有被折叠时),导航会闪烁。

代码:

$('.nav a').on('click', function() {
  $(".btn-navbar").click(); //bootstrap 2.x
  $(".navbar-toggle").click() //bootstrap 3.x by Richard
});
.block {
  padding: 70px 0;
}
#section-white {
  background-color: #fff;
  height: 100px;
}
#section-1 {
  margin-top: 51px;
  /* height of header-navbar */
}
#section-1,
#section-2,
#section-3 {
  height: 600px;
  background-color: #555;
  color: #fff;
}
<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
  <div class="container">
    <!-- Brand and toggle get grouped for better mobile display -->
    <div class="navbar-header page-scroll">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
        <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 navbar-right">
        <li class="hidden">
          <a class="page-scroll" href="#page-top"></a>
        </li>
        <li>
          <a class="page-scroll" href="#section-1">About</a>
        </li>
        <li>
          <a class="page-scroll" href="#section-2">Services</a>
        </li>
        <li>
          <a class="page-scroll" href="#section-3">Contact</a>
        </li>
      </ul>
    </div>
    <!-- /.navbar-collapse -->
  </div>
  <!-- /.container -->
</nav>
<div class="block" id="section-1">
  <div class="container">
    <div class="row">
      Hello World
    </div>
    <!-- /.row -->
  </div>
  <!-- /.container -->
</div>
<!-- /.block -->
<div id="section-white"></div>
<div class="block" id="section-2">
  <div class="container">
    <div class="row">
      Hello World
    </div>
    <!-- /.row -->
  </div>
  <!-- /.container -->
</div>
<!-- /.block -->
<div id="section-white"></div>
<div class="block" id="section-3">
  <div class="container">
    <div class="row">
      Hello World
    </div>
    <!-- /.row -->
  </div>
  <!-- /.container -->
</div>
<!-- /.block -->

你可以在这里试试-桌面结果,这是源代码-源代码

早些时候,我在Bootstrap 2.3.2中使用了这个解决方案,没有遇到任何问题。

试试这个:

JS

$('.nav a').on('click', function() {
    $('.navbar-collapse').collapse('hide');
});

检查更新的小提琴

还要检查这个答案:自动关闭响应导航栏