JS实现锚点链接平滑滚动并预留导航高度
作者:拾光时间:2026-10-24 07:46:53浏览:612
本文介绍如何使用JavaScript和jQuery实现锚点链接的平滑滚动效果。通过自定义属性navTo替代传统href,获取目标元素ID,利用animate方法控制滚动行为,并减去固定像素值(如150)以避开顶部导航栏遮挡,确保内容完整可见。
锚点平滑滚动实现原理与步骤
实现锚点链接点击后的平滑滚动效果,并允许根据页面布局自由调整滚动停止时的顶部偏移位置。
第一步,在HTML中定义锚点链接。注意这里不使用标准的href属性,而是采用自定义属性navTo来指定目标。
<ul>
<li><a class="anchor" navTo="one">目标选择</a></li>
<li><a class="anchor" navTo="two">目标客户</a></li>
<li><a class="anchor" navTo="three">广告形式</a></li>
<li><a class="anchor" navTo="four">广告投放</a></li>
<li><a class="anchor" navTo="five">预算和时间安排</a></li>
<li><a class="anchor" navTo="six">转化追踪</a></li>
</ul>
第二步,为页面右侧需要滚动定位的内容区域添加对应的id属性,确保JavaScript能够准确获取这些元素。
<div class="right">
<div id="one">
<div class="target">
<i>您的目标是:</i>
<div class="brand_engagement"><img src="img/signal.png" /><i>品牌参与度</i><b>更改</b></div>
<p>我希望人们了解我的业务。</p>
<div class="advertising_that">
<img src="img/right.png" /> 广告将显示给最右可能浏览<b>您的广告的人群。</b>
</div>
</div>
</div>
<div id="two">
第二部分内容
</div>
<div id="three">
第三部分内容
</div>
<div id="four">
第四部分内容
</div>
<div id="five">
第五部分内容
</div>
</div>
第三步,编写JavaScript代码实现平滑滚动逻辑。代码中设定了150像素的偏移量,这通常对应于顶部导航栏的高度,开发者可根据实际需求调整该数值。
核心JavaScript代码解析
$('.anchor').click(function () {
var navto = $(this).attr('navto');
if (navto != "#") {
var $div = $('#' + navto);
var top = $div.offset().top || 0;
$('html,body').animate({
'scroll-top': top - 150
}, 500);
} else {
$('html,body').animate({
'scroll-top': 0
}, 500);
}
});
完成上述配置后,即可看到平滑滚动的效果演示。

关于JS中锚点链接点击平滑滚动并自由调整到顶部位置的介绍到此结束,更多相关js锚点链接平滑滚动内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!
作者最新文章
JS处理含Emoji或中文的字符串转数组乱码问题
2026-11-05 16:12:28
JS怎么使用展开运算符合并对象
2026-11-05 14:42:18
ES6+环境下判断JS对象为空的简洁写法
2026-11-05 12:12:23
怎么通过replacer函数自定义JS中JSON的格式化输出
2026-11-05 11:19:44
JS正则表达式基础:字面量与RegExp构造函数的区别及常用元字符
2026-11-05 11:16:58
