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

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

时间2025-09-19 12:01:53分类IT科技浏览6448
导读: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
how to eat healthily 英语作文八年级(How to Enable Remote Access to MySQL)