vue中记录滚动条位置的两种方法
作者:爱敲码的老余 发布时间:2024-04-27 15:59:33
标签:vue,滚动条,位置
1、方法一
在点击的时候记录滚动条位置,存入本地
再次进入该路由读取滚动跳位置
1、1 跳转时路由存入scroll 如果要有多个页面,可以把名称也存进去,这里默认一个页面
methods: {
go() {
console.log(document.documentElement.scrollTop)
localStorage.setItem("scroll", document.documentElement.scrollTop)
this.$router.push({path: '/'})
}
}
1、2 读取scroll位置 再次进入该路由时从本地录取scroll位置
利用scrollBehavior ,在
router/index.js
中,配置路由中的scrollBehaviors
事件
const router = new VueRouter({
mode: 'hash',
routes,
scrollBehavior(to, from){
if(to.name==='fatherSlot'){ //name为路由名字
return {x:0, y: parseInt(localStorage.getItem('scroll'))}//读取本地的scroll
}
console.log("to",to,"from",from)
}
})
2、方法二
利用
vue
的keep-alive
, 使用缓存机制来记录滚动条位置
但是有个缺点,页面刷新后就不记录了,但是简单高效
2、1 配置需要缓存的路由 缓存pageA
,pageB
,里面代码都一样,如演示图一样。pageA
,pageC
为组件的名字.
html
<keep-alive :include="['pageA','pageC']">
<router-view/>
</keep-alive>
2、2 在路由内记录滚动位置
javascript
data() {
return {
curScrollTop: 0 //记录滚动条位置对象
}
},
//此钩子函数会反复触发,是keep-alive特有的钩子函数,取
activated() {
document.documentElement.scrollTop = this.curScrollTop || 0
},
//路由离开时的钩子函数,存
beforeRouteLeave (to, from, next) {
this.curScrollTop = document.documentElement.scrollTop || 0
next()
},
来源:https://blog.csdn.net/www61621/article/details/127648707
0
投稿
猜你喜欢
- 本文和大家重点讨论一下Perl split函数的用法,Perl中的一个非常有用的函数是Perl split函数-把字符串进行分割并把分割后的
- 一。安装python1.到python官网下载安装包注意:班级同学们请到班级资料下载安装包,可以不用到网上下载。点击导航栏download-
- 一、连接mysql在IDE开发工具中也是可以使用mysql的,这里以开发java常用的IntelliJ IDEA为例。1. 打开idea,右
- 比如说,name=John。在队列里,值和表单用一个&符号分开,空格用+号替换,特 殊的符号转换成十六进制的代码。因为这一队列在UR
- 前言 简述bs4:使用pip install beautifulsoup4将bs4包安装到当前的python解释器环境,使用fro
- 秉承着一切皆对象的理念,我们再次回头来看函数(function)。函数也是一个对象,具有属性(可以使用dir()查询)。作为对象,它还可以赋
- 利用python代码生成一个随机的MAC地址,使用python网络编程时或可用上,如果使用scapy模块则可直接利用RandMAC()函数来
- 1.策略模式(Strategy): 定义了算法家族, 分别封装起来, 让它们之间可以互相替换. 比如Collections.sort(Lis
- python3 shelve模块的详解一、简介在python3中我们使用json或者pickle持久化数据,能dump多次,但只能load一
- 在SQL中,很多威力都来自于将几个表或查询中的信息联接起来,并将结果显示为单个逻辑记录集的能力。在这种联接中包括INNER、LEFT、RIG
- 安装Scrapy的安装很简单,官方文档也有详细的说明 http://scrapy-chs.readthedocs.io/zh_CN/0.24
- 隐藏并修改文件的最后修改时间的asp-webshell。源码:<% '隐藏并修改文件的最后修改时间的aspshell '
- 索引是快速搜索的关键。MySQL索引的建立对于MySQL的高效运行是很重要的。下面介绍几种常见的MySQL索引类型。在数据库表中,对字段建立
- 一、参数和共享引用:In [56]: def changer(a,b): ....: a=2 ....
- keras根据层名称来初始化网络def get_model(input_shape1=[75, 75, 3], input_shape2=[
- JSON 基础简单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,
- 一.__eq__方法在我们定义一个类的时候,常常想对一个类所实例化出来的两个对象进行判断这两个对象是否是完全相同的。一般情况下,我们认为如果
- 默认登录mysql之后可以通过SHOW VARIABLES语句查看系统变量及其值。mysql> show variables like
- 本文实现用python编写一个带界面的计算器小程序,当然这个计算器功能很简单,只能进行一些简单的数学运算,很适合初学者,希望能给大家带来一些
- Windows 8 终于发布了,虽然现在可用的只是开发者预览版,好消息是,IE 10 也随着发了,虽然现在还只有Windows 8可用。我们