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

一、使用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",
    })
}
相关推荐
ShineWinsu1 分钟前
对于 Vue 3:开发前需要掌握的 JavaScript 核心基础:从变量、数组方法到 Promise、Async/Await 与 ES Module 的解析
javascript·vue.js·elasticsearch
晴天1616 分钟前
Tsup:TypeScript库打包的“零配置极速方案”
前端·javascript·typescript
雪芽蓝域zzs35 分钟前
第十七节:面包屑导航组件(适配多级嵌套路由)
前端·javascript·vue.js
smileNicky1 小时前
React 弹窗组件如何在新标签页打开?
javascript·react.js·ecmascript
yume_sibai1 小时前
Element Plus 其他实用组件完全指南(10个核心组件)
前端·javascript·vue.js
大梦想家a1 小时前
基于 HTML+CSS 的个人生活主页设计与实现
css·html·生活
雪芽蓝域zzs1 小时前
第二十二节:进阶:用户管理新增、编辑弹窗 + 表单校验
前端·javascript·vue.js
shmily麻瓜小菜鸡2 小时前
JavaScript / TypeScript 易踩坑知识点 —— 作用域与变量类
开发语言·javascript·typescript
变与不变8062 小时前
JS作用域,作用域链
前端·javascript·es6
雪芽蓝域zzs2 小时前
二十一节:进阶:用户列表批量删除功能
前端·javascript·vue.js