Bootstrap 使用 scrollspy 和固定导航添加偏移量
Posted
技术标签:
【中文标题】Bootstrap 使用 scrollspy 和固定导航添加偏移量【英文标题】:Bootstrap add offset with scrollspy and fixed nav 【发布时间】:2014-02-07 22:51:54 【问题描述】:我已经设置了一个固定导航,带有scrollspy和平滑滚动:
<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;
);
);
这很好用,不幸的是它滚动时没有任何偏移(我的导航高度为 80 像素)。我试图添加“data-offset=80”,但这并没有做任何事情。我不太确定我必须在 JS 中添加什么才能完成这项工作:(
【问题讨论】:
this question的答案可能对你有所帮助。 用css技巧试试这个教程,没有javascript:css-tricks.com/hash-tag-links-padding 【参考方案1】:由于您有一个 navbar-fixed-top,您需要手动设置偏移量。试试
$("body").scrollspy(offset: 80);
【讨论】:
以上是关于Bootstrap 使用 scrollspy 和固定导航添加偏移量的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 scrollspy 制作 Twitter Bootstrap 2.x 导航栏
在 MVC 5 中使用 bootstrap scrollspy