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

如何使导航栏类切换JS代码仅在首页生效,其他页面默认应用.black类?

解决方案:让导航栏类切换逻辑仅在首页生效

嘿,这个需求很常见,咱们可以通过先判断当前页面是否为首页,再执行对应逻辑来实现。下面给你两种靠谱的实现方式:

方法一:通过URL判断首页

如果你的首页是网站根路径(比如https://yourdomain.com/或https://yourdomain.com/index.html),可以直接检查当前页面的路径:

// 判断是否为首页
const isHomePage = window.location.pathname === '/' || window.location.pathname === '/index.html';

if (isHomePage) {
  // 仅首页执行滚动切换逻辑
  $(window).on('scroll', function () {
    if ($(window).scrollTop() > 75) {
      $('#anim-nav').addClass('bg-fill').removeClass('white').addClass('black');
    } else {
      $('#anim-nav').removeClass('bg-fill').removeClass('black').addClass('white');
    }
  });
  // 页面加载时手动触发一次滚动事件,确保初始状态正确
  $(window).trigger('scroll');
} else {
  // 非首页直接固定添加black类,清除可能的冲突类
  $('#anim-nav').addClass('black bg-fill').removeClass('white');
}

方法二:通过页面独有标识判断

如果首页有其他页面没有的专属标识(比如body带home-page类,或存在ID为home-hero的元素),用这种方式更灵活,不受URL变化影响:

// 示例:通过body类判断是否为首页
const isHomePage = $('body').hasClass('home-page');
// 也可以通过独有元素判断:const isHomePage = $('#home-hero').length > 0;

if (isHomePage) {
  // 首页执行滚动切换逻辑
  $(window).on('scroll', function () {
    if ($(window).scrollTop() > 75) {
      $('#anim-nav').addClass('bg-fill').removeClass('white').addClass('black');
    } else {
      $('#anim-nav').removeClass('bg-fill').removeClass('black').addClass('white');
    }
  });
  $(window).trigger('scroll');
} else {
  // 非首页固定设置black类
  $('#anim-nav').addClass('black bg-fill').removeClass('white');
}

小提醒:

  • 手动触发scroll事件是为了避免页面刚加载时,导航栏状态不符合预期的问题。
  • 非首页设置类时,记得移除white类,防止之前的逻辑残留干扰样式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:13:00