滚动从一个div到下一个div时更改导航栏按钮活动状态

时间:2017-01-29 06:41:29

标签: jquery html css twitter-bootstrap

我有一个带有导航栏和2个jumbotrons的小HTML页面

<nav class="navbar navbar-default navbar-fixed-top">
    <div class="container">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="#">Play Home</a>
        </div>
        <div id="navbar" class="navbar-collapse collapse">
            <ul class="nav navbar-nav">
                <li class="active"><a href="#" id="HomeButton">Home</a></li>
                <li><a href="#Campus" id="CampusButton">Campus</a></li>
                <li><a href="#contact">Contact</a></li>
            </ul>
        </div>
        <!--/.nav-collapse -->
    </div>
</nav>

<div class="container" id="Home">
    <div class="jumbotron">
        <!--Content here-->
    </div>
</div>
<div class="container" id="Campus">
    <div class="jumbotron">
     <!--Content Here-->
    </div>
</div>

如何使用JQuery在页面上滚动时将导航栏导航从一个导航栏导航到另一个?

我试过这个 -

$("#Home").scroll(function() {
    console.log("Here");
    $(".nav li").removeClass("active");
    $("#HomeButton").parent().addClass("active");
});

$("#Campus").scroll(function() {
    $(".nav li").removeClass("active");
    $("#CampusButton").parent().addClass("active");
});

1 个答案:

答案 0 :(得分:0)

我认为你实际上是在滚动之后。

将此添加到您的正文标记。

<body data-spy="scroll" data-target=".navbar">

它应该有用,需要注意的一点是,导航栏的<a>标记的href必须与<div>的id相同。

另外,您应该在id中使用全部小写,我认为这是一个很好的约定。 :)

如果您有任何其他信息,请查看此链接。 http://getbootstrap.com/javascript/#scrollspy