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

一、使用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",
    })
}
相关推荐
Penge6664 小时前
《Go 后端开发者学 React:组件通信与插槽》
javascript
Penge6666 小时前
《Go 后端开发者学 React:useState》
javascript
Penge6666 小时前
《Go 后端开发者学 React:数据渲染》
javascript
ikoala9 小时前
AI 写页面像说明书,修 Bug 像贴膏药?把这两句话写进 AGENTS.md
前端·javascript·ai编程
Penge6669 小时前
《Go 后端开发者学 TypeScript:ES Module了解》
javascript
Penge6669 小时前
《Go 后端开发者学 TypeScript:从零搭建与运行》
javascript
Penge66610 小时前
《Go 后端开发者学 TypeScript:keyof关键字》
javascript
Penge66611 小时前
《Go 后端开发者学 TypeScript:extends关键字》
javascript
张张123y11 小时前
DSH 插件调试避坑:client.js 设置面板、热重载与高频报错排查表
开发语言·javascript·人工智能·开源·ecmascript·后端开发·ai agent
Penge66616 小时前
《Go 后端开发者学 TypeScript:typescript 类型断言》
javascript