javascript - addclass 和选择器的问题

标签 javascript jquery html css

我对 jQuery 还很陌生,所以我确信这是一个明显的错误 - 但尽管如此,它还是让我感到难过。我正在尝试制作一个非常简单的导航栏,在您滚动经过它后,它会从页面下方 500px 移动到顶部的绝对定位。

问题:当我使用导航栏的 div ID 和#navbar 选择器时,我似乎无法让 js 找到导航栏。

这是js:

$(document).ready(function () {
    $(window).bind('scroll', function () {
        var scrollDepth = 500;
        if ($(window).scrollTop() > scrollDepth) {
            $('#navbar').addClass('fixed')
        } else {
            $('#navbar').removeClass('fixed')
        }
    })
})

这是问题的 jsfiddle:http://jsfiddle.net/ayGwn/475/

最佳答案

这是一个特殊性的问题。 id 的 CSS 规则将覆盖类的 CSS 规则。如果您将 .fixed { ... } 更改为 #navbar.fixed { .. } 它应该可以工作。假设您没有将 .fixed 用于其他用途。

MDN article about CSS selectors specificty

The following list of selectors is by increasing specificity:

  • Universal selectors
  • Type selectors
  • Class selectors
  • Attributes selectors
  • Pseudo-classes
  • ID selectors
  • Inline style

关于javascript - addclass 和选择器的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23783968/

相关文章:

javascript - 在 ajax 请求后添加延迟以更改图像属性

javascript - 选择一个元素,其具有特殊属性的最近父元素具有特殊值

javascript - 在函数内部传递 JS 中的引用

javascript - 在javascript中关闭窗口

javascript - 将html表格导入html页面

php - 如何激活现有的水平菜单?

php - HTML5 地理定位,点击时将纬度/经度传递给 PHP 变量

javascript - 如何在 Angular 2 Typescript 中为 FormBuilder 对象设置值

JavaScript 模块使用

javascript - 如何在悬停时停止 jQuery 函数?