如何调整scrollTop脚本实现根据屏幕宽度设置不同滚动高度
问题定位
- 前置逻辑冗余:你在屏幕宽度判断之前就执行了一次滚动到620的动画,该代码不受分支判断约束,会始终优先运行,和后续的判断逻辑产生冲突。
- 滚动高度无差异:你当前写的两个分支滚动高度都是620,就算逻辑运行正常也看不出适配不同屏幕宽度的效果。
- 缺省分支未阻止默认行为:只有
window.innerWidth < 700的分支写了return false阻止锚点默认跳转,当屏幕宽度≥700时,浏览器会触发默认的锚点跳转行为,直接覆盖你写的滚动动画,导致动画失效。
修复方案
调整为先判断宽度再执行动画,所有场景都阻止默认锚点跳转,根据屏幕宽度设置差异化滚动高度即可:
$("a[href='#tabs-11']").click(function() { // 可自行修改小于700px时对应的滚动高度数值 let targetScrollTop = window.innerWidth < 700 ? 300 : 620; $("html, body").animate({ scrollTop: targetScrollTop }, "slow"); // 所有场景都阻止默认锚点跳转 return false; });
内容的提问来源于stack exchange,提问作者ZeeMan
相关产品推荐
相关产品推荐

