我希望我的导航栏在与该链接关联的部分滚动页面时以及当我单击该链接转到该部分时更改链接的活动状态。导航栏转到页面上的部分而不是其他页面。我在这个网站上使用bootstrap。
这是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();
});
有人可以帮忙吗?
答案 0 :(得分:0)
当您在#idname
属性中传递href
时,它会在页面中查找ID并向下/向上滚动到该部分,以便该元素的顶部为窗户的顶部。在您的情况下,您可能会错过HTML中的`id =“section1”。我不确定,因为我只能看到HTML的标题部分。
点击:
<a href="#section1"></a>
该页面将页面滚动到:
<div id="section1"></div>
额外:要获得平滑的过渡滚动效果,您可以使用Chris Coyier精彩的平滑滚动plugin。