当页面在与该链接相关的部分滚动时,以及当我单击该链接转到该部分时,我希望我的导航栏更改链接的活动状态。导航栏转到页面上的部分,而不是另一个页面。我正在为这个网站使用引导程序。
这是Html
<header id="navbar">
<div class="row" id="navbar-1">
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation" id="navbar-2">
<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>
</div>
<div class="collapse navbar-collapse myActlink" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li class="active"><a href="#section1">Home</a></li>
<li><a href="#section2">Me</a></li>
<li><a href="#section3">Work</a></li>
<li><a href="#section4">Contact</a></li>
</ul>
</div><!-- /.navbar-collapse -->
</nav>
</div>
</header>
我试着使用这个jquery代码,但它改变了活动类,但当我点击时,我无法转到任何部分
$('.myActlink li').click(function(e) {
$('.myActlink li.active').removeClass('active');
var $this = $(this);
if (!$this.hasClass('active')) {
$this.addClass('active');
}
e.preventDefault();
});
有人能帮忙吗?
当您在href
属性中传递#idname
时,它会在页面中查找id,并向下/向上滚动到该部分,以便元素的顶部就是窗口的顶部。在您的情况下,HTML中可能缺少`id="section1"。我不确定,因为我只能看到HTML的标题部分。
点击:
<a href="#section1"></a>
页面将滚动页面至:
<div id="section1"></div>
额外:为了获得平滑过渡滚动效果,您可以使用Chris Coyier出色的平滑滚动插件。