如何优雅地取消页面滚动恢复行为?

开发 前端
通常我们在浏览web页面时,当浏览到某个位置跳去了其它页面浏览后再回到开始时的那个页面时,浏览器会帮我们重新定位到我们离开页面时的位置,对于绝大多数场景来说,这确实是一个非常好的体验设计!但有时候我们往往不想这样,这个时候我们是不是通常会使用scrollTop来解决这一问题,今天我们再来介绍一种更佳优雅的方法scrollRestoration。

前言

通常我们在浏览web页面时,当浏览到某个位置跳去了其它页面浏览后再回到开始时的那个页面时,浏览器会帮我们重新定位到我们离开页面时的位置,对于绝大多数场景来说,这确实是一个非常好的体验设计!但有时候我们往往不想这样,这个时候我们是不是通常会使用scrollTop来解决这一问题,今天我们再来介绍一种更佳优雅的方法scrollRestoration。

history

我们平常在web页面中会用到:history.forward()、history.back()或history.go(1)之类的操作,但history还有另外一个神奇的属性 —— 「scrollRestoration 滚动恢复」。

scrollRestoration

History 的接口—— 「滚动恢复属性」 允许 web 应用程序在历史导航上显式地设置默认滚动恢复行为

语法

const scrollRestore = history.scrollRestoration

  • auto:将恢复用户已滚动到的页面上的位置。(默认值)
  • manual:未还原页上的位置。用户必须手动滚动到该位置。

文档上虽然并没有明确说明谁是默认值,但从我们的平常使用体验上来将,这个默认值应该就是auto。当然我们也可以自行验证,找一个自己的页面在浏览器打开,然后在控制台输入history。

这里我们就能看到history.scrollRestoration的默认值就是auto。

所以也就是说如果浏览器支持history.scrollRestoration并且值为auto则会默认的滚动恢复行为,如果设置为manual则可以取消滚动恢复行为

window.history.scrollRestoration && (window.history.scrollRestoration 
= 'auto')

这种方式相对于我们常用的scrollTop要更加的优雅。

兼容性

图片

责任编辑:华轩 来源: 前端南玖
相关推荐

2021-03-24 10:20:50

Fonts前端代码

2020-03-26 11:04:00

Linux命令光标

2021-05-12 22:07:43

并发编排任务

2021-01-18 13:17:04

鸿蒙HarmonyOSAPP

2022-05-13 21:20:23

组件库样式选择器

2021-01-28 14:53:19

PHP编码开发

2024-04-24 12:34:08

Spring事务编程

2022-05-24 06:07:48

JShack用户代码

2022-06-02 10:02:47

Kubectl更新应用Linux

2021-09-08 08:34:37

Go 文档Goland

2020-10-22 10:15:33

优化Windows电脑

2018-08-20 10:40:09

Redis位图操作

2020-12-08 08:08:51

Java接口数据

2020-11-06 08:13:03

服务器Nodejs客户端

2020-09-25 11:30:20

Java判空代码

2020-07-09 10:15:55

空值Bug语言

2021-03-26 20:37:14

Prometheus监控指标

2017-12-14 14:17:08

Windows使用技巧手册

2020-02-05 14:05:21

Java技术数组

2020-04-10 10:22:12

Java判空编程语言
点赞
收藏

51CTO技术栈公众号