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

滚动至指定像素后Header无法正常切换显示/隐藏状态的问题求助

解决Header滚动切换的问题

嘿,我一眼就看出问题所在啦!你的逻辑顺序搞反了,咱们来修正一下~

问题根源

你现在的代码里,scrollTop()>1980这个条件会先被判断,当滚动到2500px的时候,因为2500肯定大于1980,所以第一个条件已经满足,后面的else if ($(this).scrollTop()>2500)根本不会被执行,这就是为什么滚动到2500px时切换不回去的原因。

修改后的代码

只需要调整条件的判断顺序,先检查更大的数值(2500px),再检查1980px,就能实现你想要的效果:

$(window).scroll(function() {
  if ($(this).scrollTop() > 2500) {
    // 滚动到2500px以上,切换回初始状态(显示navBar)
    $('#navBar').fadeIn();
  } else if ($(this).scrollTop() > 1980) {
    // 滚动到1980-2500px之间,隐藏navBar
    $('#navBar').fadeOut();
  } else {
    // 滚动在1980px以下,保持初始显示状态
    $('#navBar').fadeIn();
  }
});

逻辑说明

  • 当滚动距离超过2500px时,优先触发第一个条件,把#navBar显示回来,回到初始状态;
  • 当滚动距离在1980px到2500px之间时,触发第二个条件,隐藏#navBar;
  • 滚动距离在1980px以下时,保持#navBar显示的初始状态。

这样调整后,滚动切换的逻辑就完全符合你的需求啦~

内容的提问来源于stack exchange,提问作者oli venöl

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 15:07:29