首页IT科技vue滚动到指定位置(vue中记录滚动条位置)

vue滚动到指定位置(vue中记录滚动条位置)

时间2025-05-05 03:29:11分类IT科技浏览5079
导读:1、方法一 在点击的时候记录滚动条位置,存入本地 再次进入该路由读取滚动跳位置...

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() },

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
u盘的扩容盘是什么意思(使用U盘/存储卡扩容系统盘空间)