我希望我的导航栏在页面滚动到与该链接相关的部分时,以及当我单击该链接转到该部分时,更改该链接的活动状态。导航栏转到页面上的部分,而不是另一个页面。我在这个网站上使用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();
});有人能帮上忙吗?
发布于 2016-04-06 08:30:41
当您在href属性中传递一个#idname时,它会在页面中查找id,并向下/向上滚动到该部分,这样该元素的顶部就是窗口的顶部。在您的示例中,您可能会在HTML中遗漏`id="section1“。我不确定,因为我只能看到你的HTML的标题部分。
单击时:
<a href="#section1"></a>页面将滚动到以下位置:
<div id="section1"></div>Extra:为了获得平滑过渡的滚动效果,你可以使用Chris Coyier出色的平滑滚动plugin。
https://stackoverflow.com/questions/36438514
复制相似问题