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

如何使用jQuery实现点击菜单项平滑滚动到指定区域并调整偏移量

问题原因

你当前代码的核心问题是使用了$(target).offset().top获取的是目标元素相对于整个文档顶部的距离,而你实际的滚动容器是内部的.content元素,计算滚动距离时应该用目标元素相对于滚动容器顶部的距离,再调整预留间距即可。

解决方案

直接修改JS代码里的position计算逻辑即可,不需要改动HTML和CSS:

$(document).ready(function(){
  $('.item').click(function(e){
    e.preventDefault();
    let target = $(this).attr('href');
    // 获取目标元素相对于.content容器的顶部距离,再减去20px预留间距
    let position = $(target).position().top - 20;
    $('.content').animate({scrollTop: position}, 1000);
  })
})

原理说明

  • position().top获取的是元素相对于其最近的定位父元素的顶部距离,这里.content是父容器,刚好符合计算基准要求
  • 减去的20px就是你要求的目标区块和顶部黑色分割线的间距,你可以根据实际视觉效果调整这个数值
  • 原代码固定减300属于硬编码数值,不同长度的内容下自然会出现定位不准的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 03:06:03