2014-01-18 4 views
2

오프셋 추가 할 내가 scrollspy과 부드러운 스크롤과 고정 탐색 설정 한 :부트 스트랩이 scrollspy 및 고정 탐색

HTML을

<body data-spy="scroll" data-target=".navbar-collapse"> 
<!-- ---------- Navigation ---------- --> 
<div class="navbar navbar-fixed-top" role="navigation"> 
    <div class="container"> 
    <div class="navbar-header"> 
     <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> 
     <span class="sr-only">Toggle navigation</span> 
     </button> 
     <a class="navbar-brand" href="index.html"> <img src="http://placehold.it/200x50"></a> 
    </div> 
    <div class="navbar-collapse collapse"> 
     <ul class="nav navbar-nav navbar-right"> 
     <li class="active"><a href="#home">Home</a></li> 
     <li><a href="#works">Works</a></li> 
     <li><a href="#about">About</a></li> 
     <li><a href="#timeline">Timeline</a></li> 
     <li><a href="#contact">Contact</a></li> 
     </ul> 
    </div><!--/.nav-collapse --> 
    </div> 
</div> 
<!-- ---------- /Navigation ---------- --> 

JS

$(".navbar-nav li a[href^='#']").on('click', function(e) { 
e.preventDefault(); 

var hash = this.hash; 
$('html, body').animate({ 
    scrollTop: $(this.hash).offset().top 
}, 1000, function(){ 
    window.location.hash = hash; 
}); 

}); 

이것은 불행하게도, 좋은 작품 오프셋없이 스크롤합니다 (내 nav의 높이는 80px입니다). 나는 "data-offset = 80"을 추가하려고 시도했지만 이것은 아무 것도하지 않습니다. 나는 당신이 수동으로 오프셋을 설정해야하는 네비게이션 바에 고정 탑을 가지고 있기 때문에이 작품 :(

+0

시도 [이 질문에 대한 답변] (http://stackoverflow.com/questions/9288482/how-do-i-set-the-offset-for-scrollspy-in-bootstrap?rq=1) 도움이 될 것입니다. – mongol

+0

시험해보기 자습서와 CSS 트릭, 아니 자바 스크립트 : https://css-tricks.com/hash-tag-links-padding/ –

답변

0

을하려면 JS에 추가 할 필요가 무엇인지 너무 잘 모르겠습니다.

$("body").scrollspy({offset: 80});