How can I make a fix positioned menu bar?

cyrfandli picture cyrfandli · Dec 17, 2013 · Viewed 26.6k times · Source

I would like to style my menu bar Like THIS. It's fixed to the top of the site when you scroll down and it isn't fixed where it is when the page is loaded.

How can it be done with CSS?

Answer

SW4 picture SW4 · Dec 17, 2013

What you're after is a 'sticky navbar/menu'.

The simplest way would be to add the below CSS to your menu/navbar

position:fixed;
top:0px;

That said, for an effect closer to the one you've posted, you'll probably want to look at using some jQuery, e.g.:

$(window).bind('scroll', function() {
     if ($(window).scrollTop() > 50) {
         $('.menu').addClass('fixed');
     }
     else {
         $('.menu').removeClass('fixed');
     }
});

What this does is 'fix' the menu bar to the top of the page once you scroll past a certain point (e.g. 50px) by adding the CSS class 'fixed' to the .menu element, the fixed class would simply be e.g. the CSS above.

There are some nice examples listed here.