锚点实现了点击导航平滑滚动到页面指定位置的三种方法

一、使用CSS的 scroll-behavior: smooth 属性

在 标签上设置了 scroll-behavior: smooth,所有带有 # 的锚点链接(如导航菜单、返回顶部按钮)都会自动带有平滑过渡效果,无需额外代码。

css 复制代码
html{
 scroll-behavior: smooth
}
html 复制代码
<a href="#item1">第一主题</a>

<p id="item1">
	<div class="title">
	    第一主题
	</div>
	<div class="content">
	    <img src="../0-static/images/image.png" alt="图片描述" title="图片标题" width="300" height="400">
	</div>
</p>

二、使用JavaScript的 scrollIntoView 方法

scrollIntoView() 方法会滚动元素的祖先容器。

js 复制代码
function handleClick(id) {
    const item4 = document.getElementById(id)
    if(!item4) return 
    item4.scrollIntoView({
         behavior:'smooth',
         block:'start',
         inline:'nearest'
    })
 }

三、使用JavaScript的 window.scrollTo 方法

scrollTo() 方法可以使界面滚动到给定元素的指定坐标位置。

js 复制代码
function handleClick1  (id){
    const item3 = document.getElementById(id)
    if(!item3) return
    window.scrollTo({
        top:item3.offsetTop,
        left:item3.offsetLeft,
        behavior: "smooth",
    })
}
相关推荐
小玮看世界几秒前
[Python] str() 和 join() 的区别与实战避坑指南
前端·javascript·python
谢慧琼12 小时前
2026零基础做企业网站,低成本搭建官方网站
服务器·前端·javascript
拾年27515 小时前
React Hooks 进阶篇:useMemo / useCallback / useReducer / useImperativeHandle,用「算账 +
前端·javascript·react.js
Jackson__15 小时前
面试官:如何在老项目中使用新框架,并实现通信?
前端·javascript·面试
拾年27515 小时前
React Hooks 保姆级教程:把组件想象成失忆的打工人,4 个 Hook 带你原地起飞
前端·javascript·react.js
默_笙15 小时前
😝 5 亿次循环卡死页面?我用 Web Worker 把它扔进后台线程,页面丝滑如初
前端·javascript
CAD老兵15 小时前
一行代码集成 DWG/DXF 图纸查看:测量批注,数据不出站
前端·javascript·github
小林ixn15 小时前
单例模式:从弹窗管理到全局状态,一个模式搞定
前端·javascript·设计模式
名字还没想好☜16 小时前
React 用 useEffect 做轮询实战:setInterval 拿到旧 state 的闭包陷阱与正确清理
前端·javascript·react.js·react·useeffect