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

一、使用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",
    })
}
相关推荐
勇往直前plus22 分钟前
Vue3(篇一) 核心概念——响应式模板语法与组件基础
前端·javascript·vue.js
用户938515635072 小时前
从零搭建 AI 日记助手:用 Milvus 向量数据库 + RAG 让机器读懂你的每一天
javascript·人工智能·全栈
a1117763 小时前
坦克大战3D Three.js 3D (开源项目)
开发语言·javascript·3d
kyriewen4 小时前
别再乱用useEffect了——你写的10个里有8个不该存在
前端·javascript·react.js
Ivanqhz4 小时前
Rust &‘static str浅析
java·前端·javascript·rust
zandy10115 小时前
衡石 Agentic BI的ReAct 推理框架在 Agentic BI 中的工程化实践
前端·javascript·react.js
郝亚军6 小时前
webstorm如何创建vue 3.js
javascript·vue.js·webstorm
এ慕ོ冬℘゜6 小时前
jQuery attr() 方法超详细讲解:属性获取、赋值、实战踩坑全解
前端·javascript·jquery
Hilaku7 小时前
为什么大厂对前端算法要求极高?
前端·javascript·程序员
你可如意7 小时前
从Promise开始,一篇让你彻底建立起JS的异步编程模型
javascript