Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Web前端实现锚点功能的三种方式

Web前端实现锚点功能的三种方式

作者头像
lonelydawn
发布于 2022-09-01 08:06:36
发布于 2022-09-01 08:06:36
4K06
代码可运行
举报
运行总次数:6
代码可运行

一、hash

这种方式非常简单,给待跳转元素添加 id,之后修改 window.location 即可,用法如

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div id="root"></div>

当需要跳转时可调用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
window.location='#root';
// window.location.href='#root';
// window.location.hash='#root';

二、scrollIntoView

Element.scrollIntoView 方法会滚动元素的父容器,使元素显示在当前视窗内,用法如

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div id="root"></div>

当需要跳转时可调用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
document.getElementById('root').scrollIntoView();

scrollIntoView 提供一些选项,允许开发者自定义滚动方式,选项包括

  • behavior,定义动画过渡效果, "auto"或 "smooth" 之一。
    • 默认为 "auto",没有动画;
    • 取值 "smooth"时,将匀速滚动。
  • block,定义垂直方向的对齐, "start", "center", "end", 或 "nearest"之一。
    • 默认为 "start",元素顶部将滚动到视窗顶部;
    • 取值 "end",元素底部将和视窗底部对齐;
    • 取值 "center",元素中线将和视窗中间对齐;
    • 取值 "nearest",元素将就近对齐。即,若页面向上滚动,则顶部对齐;若页面向下滚动,则底部对齐。
  • inline,定义水平方向的对齐, "start", "center", "end", 或 "nearest"之一。
    • 默认为 "nearest"。含义同 block 选项的取值。

三、scrollTo/scrollBy

window.scrollTo 可将视窗滚动到指定的坐标。用法如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
window.scrollTo(xpos, ypos);

window.scrollBy 可将视窗向上下或左右移动指定坐标的距离。用法如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
window.scrollBy(xnum, ynum);

这种方式还需要实用 Element.getBoundingClientRect 来获取元素的大小及相对于当前视窗的位置。Element.getBoundingClientRect 的返回值包含 top、left、bottom、right、width 和 height 六个属性,除了 width 和 height 以外的属性均是相对于视窗的左上角来计算的。

以 HTML 根节点为滚动容器为例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div id="root"></div>

当需要跳转时可调用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const {scrollTop: domScrollTop, scrollLeft: domScrollLeft} = document.documentElement;
const {top: targetOffsetTop} = document.getElementById('root').getBoundingClientRect();

// 滚动 div#root 元素顶部到与视窗顶部对齐
window.scrollTo(domScrollLeft, domScrollTop + targetOffsetTop);
window.scrollBy(domScrollLeft, targetOffsetTop);

同理,滚动元素到与视窗底部或与视窗中间对齐亦可取参计算。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-07-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
JS滑动滚动的n种方式
scrollIntoView对页面元素调用,会滚动元素的父容器,将该元素滚动到浏览器的可视区域
源心锁
2022/08/12
7.3K0
JS滑动滚动的n种方式
Web浏览器滚动方案一览| rAF等
在Web开发中,实现流畅的滚动效果对于提升用户体验至关重要。为了实现这一目标,开发人员可以利用一系列的滚动方案。其中,请求动画帧(requestAnimationFrame,简称rAF)是一种常用的技术。rAF通过优化动画效果的渲染,可以避免卡顿和过度绘制的问题。此外,还有其他滚动方案如CSS动画、滚动事件监听等等,开发人员可以根据具体需求选择合适的方案。通过合理选择和应用这些滚动方案,我们可以提供更加流畅和优化的用户体验。
泯泷、
2024/03/13
3460
你也许不知道的浏览器的一些"滚动"行为
最近挺忙的,这次抽空写写文陶冶下情操,浏览器滚动真的天天见日日见啦,比如你现在看的这篇文章,往下看就必须得滚动,这篇文章主要聊聊滚动相关的一些方法跟属性,还有一些有趣的例子? 文章涉及到的方法或属性在
桃翁
2019/09/17
3.4K0
你也许不知道的浏览器的一些"滚动"行为
忍法,scroll 翻滚之术!
但其实随着时间的推移, web api 以及 css 规范的不断改进,那些我们曾经认为实现起来很麻烦的功能也变得简单了起来。下面我们可以一起来探讨一下这些改进的内容。
陈大鱼头
2020/04/16
1.4K0
忍法,scroll 翻滚之术!
React项目中如何实现一个简单的锚点目录定位
锚点目录定位功能在长页面和文档类网站中非常常见,它可以让用户快速定位到页面中的某个章节
linwu
2023/10/16
1.7K0
React项目中如何实现一个简单的锚点目录定位
[第19期] 介绍一个页面平滑滚动小技巧
今天写需求的时候发现一个小的优化点:用户选择了一些数据之后, 选择的条目需要高亮, 有时候列表很长, 为了提升用户体验,需要加个滚动, 自动滚动到目标位置。
皮小蛋
2020/02/29
1.5K0
说说几个 API 和应用案例
除了 classList.contains 方法之外,还有一个 node.contains 方法,这个方法返回的是一个布尔值,来表示传入的节点是否为该节点的后代节点。语法:
多云转晴
2020/03/26
1.9K0
说说几个 API 和应用案例
Scroll,你玩明白了嘛?
1、引言 最近在实现列表的滚动交互时,算是被复杂的业务场景整得怀疑人生了。今天主要聊一下关于 scroll 的应用: CSS 平滑滚动 JS 滚动方法 区分人为滚动和脚本滚动 2、CSS 平滑滚动 2.1 一行样式改善体验 在一些滚动交互比较频繁的场景,我们可以通过在可滚动容器上增加一行样式来改善用户体验。 scroll-behavior: smooth; 比如说,在文档网站里,我们常使用 # 来去定位到对应的浏览位置。 像上面这个例子,我们首先通过 # 去锚定对应内容,实现了一个 tab 切换的效果:
用户1097444
2022/06/29
3.4K0
Scroll,你玩明白了嘛?
native 嵌套H5弹出虚拟键盘遮挡界面及其input 文本框上提及其置顶显示
      在于你的布局,可以用定位position:fixed;来做处理,因为他相对于页面来说,定位于屏幕一定的位置。
White feathe
2021/12/08
1.2K0
详细介绍scrollIntoView()方法属性
因为工作中用到了锚点设置,常用的总是出问题,后来扒拉出了这个属性,详细研究了下方便日后使用
全栈程序员站长
2022/07/02
1.5K0
js滚动到页面顶部
js平滑滚动到顶部,底部,指定地方 采用锚点进行页面中的跳转的确很方便,但是要想增加网页的效果,可以使用jquery中的animate,实现滚动的一个动作,慢慢的滚动到你想跳转到的位置 滚动到顶部:
IT工作者
2022/01/15
15K0
点击按钮,回到页面顶部的5种写法
2.scrollTop:scrollTop属性表示被隐藏在内容区域上方的像素数。元素未滚动时,scrollTop的值为0,如果元素被垂直滚动了,scrollTop的值大于0,且表示元素上方不可见内容的像素宽度
全栈程序员站长
2022/09/07
3.2K0
基于JS实现回到页面顶部的五种写法(从实现到增强)
  使用锚点链接是一种简单的返回顶部的功能实现。该实现主要在页面顶部放置一个指定名称的锚点链接,然后在页面下方放置一个返回到该锚点的链接,用户点击该链接即可返回到该锚点所在的顶部位置
botkenni
2019/09/03
6.6K0
利用这个css属性,你也能轻松实现一个新手引导库
相信大家或多或少都在各种网站上使用过新手引导,当网站提供的功能有点复杂时,这是一个对新手非常友好的功能,可以跟随新手引导一步一步了解网站的各种功能,我们要做的只是点击下一步或者上一步,网站就能滚动到指定位置,然后高亮页面的一部分,并且配以一些图文介绍。
街角小林
2023/07/09
6010
利用这个css属性,你也能轻松实现一个新手引导库
【Python爬虫实战】全面掌握 Selenium 的 IFrame 切换、动作链操作与页面滚动技巧
在使用 Selenium 进行网页自动化测试或数据抓取时,我们经常会遇到需要操作 iframe、模拟复杂的 用户交互动作,以及处理 动态加载页面 的情况。这些操作是实现稳定且高效自动化流程的关键。本指南将详细介绍如何切换 iframe、使用动作链执行复杂交互,以及如何通过页面滚动加载更多内容。无论是自动化测试还是爬取动态网页,这些技巧都能帮助你更好地控制浏览器。
易辰君
2024/11/07
1.2K0
操作滚动条小结:scrollIntoView/animate等方法的来龙去脉
操作滚动条可以通过锚点跳转,JS操作滚动条,与scrollIntoView等方法。对此,我来考古一下。
周陆军博客
2024/01/15
5760
HTML 锚点三种实现方法
scrollIntoView()的用法 scrollIntoView是一个与页面(容器)滚动相关的API,该API只有boolean类型的参数能得到良好的支持(firefox 36+都支持)
青梅煮码
2023/01/16
3.8K0
排行榜--实现点击视图自动滚动到当前用户所在位置.
首先,我们在进行列表建设的时候, 需要准备好一个数据. 因为此处我们是使用的vue3来进行编写. 对于列表我们使用的是v-for列表渲染来做的. 在渲染的时候, 我们需要给每一个列表项(当前就是每一个用户项)添加一个自定义属性. 具体的话, 可以看下 下方的关键代码.
心安事随
2024/08/18
3480
排行榜--实现点击视图自动滚动到当前用户所在位置.
面试官问:如何判断一个元素是否在可视区域?
最近在参加面试找工作,陆陆续续的面了两三家。其中一个面试官问到了一个问题:如何判断一个元素是否在可视区域?由于平时处理的不多,所以一时没有回答出来,后来研究了下,所以有了这篇文章。
用户8921923
2022/10/24
3.5K0
面试官问:如何判断一个元素是否在可视区域?
元素中必知重要属性和方法
上一篇文章我们学习了 Angular 中自定义 Video 操作,如果读者留意的话,会发现在这篇文章中就开始操作元素的属性 scrollLeft,这是很常用的一样属性。那么还有什么属性和方法比较重要呢?其又代表什么意思呢?下面我们进入主题。
Jimmy_is_jimmy
2022/04/15
7600
元素中必知重要属性和方法
推荐阅读
相关推荐
JS滑动滚动的n种方式
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档