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

为什么使用window.scrollTop的JS代码无法成功添加stuck-md类?

问题根因

  • 条件判断的优先级顺序写反:scrollTop >= 430的成立前提必然满足scrollTop >= 285,当滚动距离超过430时,会优先命中第一个if分支逻辑,直接添加stuck-sm类,永远不会进入else if的判断分支,所以stuck-md类始终无法被添加。
  • 原有逻辑存在附加问题:就算调整判断顺序,原写法也会出现滚动到430以上时stuck-sm类没有被移除的问题,两个类会同时存在,不符合滚动分段切换类的常规预期。

修复后代码示例

// 预先获取滚动距离,避免重复调用$(window).scrollTop()造成不必要的性能损耗
const scrollTop = $(window).scrollTop()
if (scrollTop >= 430) {
  // 可根据业务需求决定是否同时保留stuck-sm类,以下为分段互斥切换类的写法
  $('.something').removeClass('stuck-sm').addClass('stuck-md')
} else if (scrollTop >= 285) {
  $('.something').removeClass('stuck-md').addClass('stuck-sm')
} else {
  $('.something').removeClass('stuck-sm stuck-md')
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 05:54:03