Bootstrap 3: How to affix after 100% height

2019-07-03 02:23发布

I am trying to get my navbar to affix to the top after an intro that is set at 100% height but I am unsure what is the best way to go about doing this?

Code:

CSS
html, body{ height: 100%; min-height: 100%;} 
.intro {height: 100%;text-align: center;}

HTML
<div class="intro">
  <div class="container">
    <h1>Lorem Ipsum</h1>
  </div>
</div>

<nav>
  <div class="container">
    <div class="navbar-header" data-spy="affix">
      <button type="button" class="navbar-toggle"  data-toggle="collapse" data-target=".navbar-collapse">
        <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="#">Test Navbar</a>
    </div>
    <div class="collapse navbar-collapse">
      <ul class="nav navbar-nav">
        <li class="active"><a href="#">Home</a></li>
        <li><a href="#about">About</a></li>
        <li><a href="#contact">Contact</a></li>
      </ul>
    </div><!--/.nav-collapse -->
  </div>
</nav>

EDIT: I am using Bootstrap 3.0.

2条回答
仙女界的扛把子
2楼-- · 2019-07-03 02:36

You can use a jQuery function to calc the height of the #intro

$('nav').affix({
      offset: {
        top: $('.intro').height()
      }
}); 

Here's a demo that works in a similar way..

http://bootply.com/106399

查看更多
神经病院院长
3楼-- · 2019-07-03 02:52

Give your nav element an id:

<nav id="derp">
  <div class="container">

and then grab the offset of that element:

$('nav').affix({
      offset: {
        top: $('nav#derp').offset().top
      }
}); 

This is a better approach than relying on preceding elements (e.g. the height on the .intro)

查看更多
登录 后发表回答