The bootstrap documentation on that topic is a little confusing to me. I want to achieve similar behaviour like in the docs with the affix navbar: The navbar is below a paragraph / page heading, and upon scrolling down it should first scroll along until reaching the top of the page, and then stick there fixed for further scrolldowns.
As jsFiddle does not work with the navbar concept, I’ve set up a separate page for usage as a minimal example: http://i08fs1.ira.uka.de/~s_drr/navbar.html
I use this as my navbar:
<div class="navbar affix-top" data-spy="affix" data-offset-top="50">
<div class="navbar-inner">
<div class="container">
<div class="span12">
<a class="brand" href="#">My Brand</a>
This is my navbar.
</div>
</div> <!-- container -->
</div> <!-- navbar-inner -->
</div> <!-- navbar -->
I thinkg i would want data-offset-top to be of value 0 (since the bar should “stick” to the very top” but with 50 there is at least some effect watchable.
If also put the javascript code in place:
<script>
$(document).ready (function (){
$(".navbar").affix ();
});
</script>
Any help appreciated.
I was having a similar problem, and I believe I found an improved solution.
Don’t bother specifying
data-offset-topin your HTML. Instead, specify it when you call.affix():The advantage here is that you can change the layout of your site without needing to update the
data-offset-topattribute. Since this uses the actual computed position of the element, it also prevents inconsistencies with browsers that render the element at a slightly different position.You will still need to clamp the element to the top with CSS. Furthermore, I had to set
width: 100%on the nav element since.navelements withposition: fixedmisbehave for some reason:One last thing: When an affixed element becomes fixed, its element no longer takes up space on the page, resulting in the elements below it to “jump”. To prevent this ugliness, I wrap the navbar in a
divwhose height I set to be equal to the navbar at runtime:.
Here’s the obligatory jsFiddle to see it in action.