2014-01-10 4 views
1

나는 navbar collapse를 특정 방법으로 작동시키는 방법을 알아 내고 그것이 가능한지 확신 할 수 없다.부트 스트랩 3 navbar-collapse 메뉴가 navbar-fixed-top 동안 이미지를 강제로 내릴 수 있습니까?

난 그냥 기본 navbar를 사용하고 있지만 nav에 fixed-to-top 클래스를 추가 했으므로 navbar-fixed-top이없는이 navbar의 기본 동작은 축소 된 메뉴를 클릭하면 그 아래에있는 내용이 강제로 적용됩니다. 메뉴가 열릴 때 아래로 이동하는 것입니다. navbar-fixed-top 클래스를 nav에 추가하면 아래의 내용을 아래로 밀어 내지 않고 아래로 떨어지는 메뉴가 그 아래 내용을 덮습니다.

기본적으로 Nav를 상단에 고정하고 싶지만 축소 된 메뉴 아래에 내용을 푸시해야합니다.

<nav class="navbar navbar-default navbar-fixed-top" role="navigation"> 
<div class="navbar-header"> 
<button type="button" class="navbar-toggle" 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> 
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> 
<ul class="nav navbar-nav"> 
    <li class="active"><a href="#">Link</a></li> 
    <li><a href="#">Link</a></li> 
    <li class="dropdown"> 
    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a> 
    <ul class="dropdown-menu"> 
     <li><a href="#">Action</a></li> 
     <li><a href="#">Another action</a></li> 
     <li><a href="#">Something else here</a></li> 
     <li class="divider"></li> 
     <li><a href="#">Separated link</a></li> 
     <li class="divider"></li> 
     <li><a href="#">One more separated link</a></li> 
    </ul> 
    </li> 
</ul> 
<form class="navbar-form navbar-left" role="search"> 
    <div class="form-group"> 
    <input type="text" class="form-control" placeholder="Search"> 
    </div> 
    <button type="submit" class="btn btn-default">Submit</button> 
</form> 
<ul class="nav navbar-nav navbar-right"> 
    <li><a href="#">Link</a></li> 
    <li class="dropdown"> 
    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a> 
    <ul class="dropdown-menu"> 
     <li><a href="#">Action</a></li> 
     <li><a href="#">Another action</a></li> 
     <li><a href="#">Something else here</a></li> 
     <li class="divider"></li> 
     <li><a href="#">Separated link</a></li> 
    </ul> 
    </li> 
</ul> 

답변

4

이 그것을 할 수있는 더 우아한 방법이 될 수 있지만, 여기에 환상을주는 메뉴가 열릴 때 bodypadding-top를 추가하고 닫을 때 제거됩니다 약간의 자바 스크립트입니다 수 콘텐츠는 navbar-collapse에 의해 푸시 다운됩니다.

비트 hackish

하지만, 그것을 작동 ...

DEMO

var navHeight = $('.navbar-collapse').height(); 

$('.navbar-collapse').on('show.bs.collapse', function(){ 
    if($(this).height() != 0){ 
    navHeight = $(this).height(); 
    } 
    $('body').animate({ 
    'padding-top': parseInt($("body").css("padding-top")) + navHeight 
    }, 300); 
}); 

$('.navbar-collapse').on('hide.bs.collapse', function(){ 
    navHeight = $(this).height(); 
    $('body').animate({ 
    'padding-top': parseInt($("body").css("padding-top")) - navHeight 
    }, 300); 
}); 
+1

이 그냥 잘 작동 나를 위해 충분! 감사합니다. – TJXStyles

관련 문제