You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bootstrap 5页面滚动时如何修改导航栏链接颜色

解决Bootstrap 5滚动时导航栏链接颜色不生效的问题

问题根源

你的代码存在三个关键错误:

  • 元素选择错误:JavaScript中选中的是单个<a.nav-link>标签,但CSS规则是给带有navbar-nav-scroll类的<ul>下的所有导航链接设置样式,应该把类添加到<ul.navbar-nav>元素上,而非单个a标签。
  • 类名添加错误:classList.add('ul.navbar-nav-scroll')是错误写法,classList.add()只需传入类名,不需要带选择器前缀,正确类名是navbar-nav-scroll。
  • 逻辑冗余:else if (window.scrollY < 56)范围与if的>=26存在重叠,直接用else即可覆盖所有滚动位置小于26的情况。

修正后的代码

JavaScript

const navUl = document.querySelector('ul.navbar-nav');

window.addEventListener('scroll', () => {
    if (window.scrollY >= 26) {
        navUl.classList.add('navbar-nav-scroll');
    } else {
        navUl.classList.remove('navbar-nav-scroll');
    }
});

CSS

保持原有CSS不变即可:

ul.navbar-nav-scroll .nav-link {
  color: var(--blue-accent-light) !important;
}

生效原理

修正后,当页面滚动距离超过26px时,会给导航栏的<ul>元素添加navbar-nav-scroll类,此时CSS规则会匹配该ul下的所有.nav-link元素,通过!important覆盖Bootstrap的默认样式,实现滚动时链接颜色的切换。

内容的提问来源于stack exchange,提问作者Mark Fenwick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 14:35:06