javascript - 滚动后固定导航栏

标签 javascript html css css-position

我正在尝试创建一个仅在到达页面顶部后才保持固定的导航栏。我的代码可以正常工作,因此导航是固定的,但我似乎无法让它首先滚动到顶部。

这是 HTML:

<div id= "home"> contentcontentcontent </div>
<div id="nav">
    <a href="#home">home</a>
    <a href="#gogreen">go green</a>
    <a href="#yourarea">your area</a>
    <a href="#howto">how to</a></div>

还有 CSS:

nav {
text-align: center;
top: 600;
z-index: 100;
position: fixed;
width: 100%;
border: 0;
margin-bottom: 0;}

fixed {
top:600;
z-index: 100;
position: fixed;
width: 100%;}

home {
overflow: hidden;}

还有 jQuery:

    $(document).ready(function() {
$(window).scroll(function () {
    //console log determines when nav is fixed
    console.log($(window).scrollTop())
    if ($(window).scrollTop() > 600) {
        $('#nav').addClass('fixed');
    }
    if ($(window).scrollTop() < 601) {
        $('#nav').removeClass('fixed');
    }
});

这些是基于对本网站上类似问题的回答,但到目前为止似乎没有任何效果。有谁知道我的代码有什么问题吗?

最佳答案

在编写 CSS 选择器时,id 和类需要分别以 #. 为前缀。在你的 CSS 中你有

nav { // rules }

fixed { // rules }

home { // rules }

什么时候应该有

#nav { // rules }

.fixed { // rules }

#home { // rules }

这是 your code 的 fiddle 工作。

关于javascript - 滚动后固定导航栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21139064/

相关文章:

javascript - 在 Angular JS 中使用异步 POST 调用检索 CSV 数据后,如何强制浏览器显示文件下载对话框?

asp.net - 在 ASP.NET 中修改服务器端的 html 输出

html - 在没有水平滚动条出现的情况下在窗口边缘稍微旋转一个div

javascript - 覆盖模态窗体的宽度 MVC/C#

javascript - jQuery 和 Ajax 仅对第一个元素使用react!

html - 页脚不粘

css - 如何在 Bootstrap 4 中的输入字段旁边设置按钮?

javascript - 如何在html中添加侧边栏菜单?

jquery - 尽管加载了 'Slick' Carousel jQuery 插件的 CSS 不影响我的 DOM

javascript - 将数组对象显示到 html 表