jquery - 从一个 div 滚动到下一个时更改导航栏按钮的事件状态

标签 jquery html css twitter-bootstrap

我有一个带有导航栏和 2 个超大屏幕的小 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 在页面上滚动时将导航栏 nav active 从一个更改为另一个?

我试过了-

$("#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");
});

最佳答案

我认为你实际上是在寻找 scrollspy。

将此添加到您的正文标签中。

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

它应该可以工作,需要注意的一件事是导航栏的 href <a>标签必须与 <div> 相同的编号。

此外,您可能应该在 id 中全部使用小写字母的,我认为这是很好的约定。 :)

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

关于jquery - 从一个 div 滚动到下一个时更改导航栏按钮的事件状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41918336/

相关文章:

javascript - jQuery 悬停功能不起作用,不知道为什么

html - 如何覆盖 Bootstrap 字体?

html - 我如何在CSS中继承 child 的属性(property)?

javascript - .focus() 在 .on ('click' 、函数(事件)内无法工作

html - Internet Explorer 11 中流体 flexbox 容器内的元素出现 "overflow: auto"问题

jquery - 围绕环设置动画 SVG 电子

jquery - 通过 jQuery 触发时 CSS3 转换最初不起作用

jquery - 如何使猫头鹰轮播中的中心图像大于其他图像?

javascript - 添加在 jquery 中不起作用的属性

java - 为什么我请求 FileName 时得到的是 null?