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 //記錄滾動條位置對象
}
},
//此鉤子函數(shù)會反復觸發(fā),是keep-alive特有的鉤子函數(shù),取
activated() {
document.documentElement.scrollTop = this.curScrollTop || 0
},
//路由離開時的鉤子函數(shù),存
beforeRouteLeave (to, from, next) {
this.curScrollTop = document.documentElement.scrollTop || 0
next()
},總結
到此這篇關于vue中記錄滾動條位置的兩種方法的文章就介紹到這了,更多相關vue記錄滾動條位置內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
vue-admin-template模板添加tagsview的實現(xiàn)
本文主要介紹了vue-admin-template模板添加tagsview的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-04-04
使用vue + less 實現(xiàn)簡單換膚功能的示例
下面小編就為大家分享一篇使用vue + less 實現(xiàn)簡單換膚功能的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-02-02
在Vue 中實現(xiàn)循環(huán)渲染多個相同echarts圖表
這篇文章主要介紹了在Vue 中實現(xiàn)循環(huán)渲染多個相同echarts圖表,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07

