2013-10-09 2 views
1

У меня есть простой навигатор, который помещается под заголовком. Когда использование прокручивается мимо заголовка, я хочу, чтобы навигационная панель стала фиксированной.bootstrap 3.0 affix snap down

Проблема заключается в том, что, когда пользователь достиг смещения, навигационная панель становится фиксированной, но страницы, похоже, прокручиваются для высоты навигационной панели + нижнего поля 20 пикселей, которое она применяется.

http://jsfiddle.net/WzphN/

Пример выглядит очень похоже на то, что я работаю за исключением того, что заголовок не название, как это, но отзывчивый карусельного вместо этого.

Так как это отзывчивый, я использовал Javascrip для запуска эффекта аффикса.

 $('#nav').affix({ 
     offset : { 
      top : function() { 
       return $('#header').height(); 
       } 
     } 
    }); 

Я понимаю, что когда браузер прокручивается мимо высоты заголовка (500 в моем примере) элемент #nav будет применен класс аффикс. Но почему он так прыгает?

ответ

2

Вам нужно будет установить верх: {heightofyournavbar} для класса .affix в вашем css.

.affix { 
    position: fixed; 
    top: 50px; 
} 

Смотрите также: data-offset-bottom in Bootstrap3 Affix

+0

Это только мое место NavBar 50 точек из верхней части, когда смещение достигается, которые создают зазор между верхней и навигационной панелью. Можете ли вы объяснить, почему вы считали, что это может быть решением? Может быть, я мог понять лучше. – David

+0

Если вы не прокрутите свой div, у вас будет класс affix-top, после прокрутки до вашей позиции offset.top этот класс изменится на аффикс. Так что .affix (с позицией top 50px и fixed) будет применяться после вашего offset.to (устанавливается javascript) –

+0

Да, я понимаю эту часть, но затем, когда я устанавливаю .affix {top: 50px;}, он сообщает браузер, чтобы поместить навигационную панель 50 пикселей сверху, когда я достигаю смещения. – David