久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

vue 移動(dòng)端記錄頁面瀏覽位置的方法

瀏覽:110日期:2023-02-01 13:02:34

記錄一下本次項(xiàng)目我使用的方法,有更簡(jiǎn)單便捷的方法,歡迎交流

描述: 假設(shè)有a b c 頁面

從a頁面 到 b頁面 ,b頁面到c頁面 b到c頁面的時(shí)候需要記錄當(dāng)前b的瀏覽位置,c返回到b的時(shí)候滾動(dòng)到上次瀏覽的位置 b在返回a的時(shí)候,在從a進(jìn)入b 返回的是b的頂部(也就是不記錄瀏覽位置)

做法: 使用到了vuex ,beforeRouteLeave

1.首先在vuex中state定義一個(gè)變量來記錄當(dāng)前的瀏覽的位置

//state中定義數(shù)據(jù) state: { carrerTouScroll: { height: ’’ //滾動(dòng)的距離 } } //mutations 操作state數(shù)據(jù) mutations: { setCarrerTouScroll (state, disdance) { //管理賽事 滾動(dòng)距離 state.carrerTouScroll.height = disdance }, } //使用getters 有的不加這句也可以,但是有時(shí)候不加就不行,所以還是加上吧 getters: { getCarrerTou: state => state.carrerTouScroll }

2.在需要的頁面中 我使用了beforeRouteLeave 來記錄沒有路由離開的時(shí)候當(dāng)前瀏覽的位置

beforeRouteLeave (to, from, next) { // 離開路由前 let that = this if (to.meta.touFlag) { let scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop this.$store.commit(’setCarrerTouScroll’, scrollTop) } else { this.$store.commit(’setCarrerTouScroll’, 0) } next() },

其中to.meta.touFlag 是我自己定義的,因?yàn)樾枰涗浀捻撁婧芏啵矣X的這樣比較方便,只需要在route 頁面加一個(gè)參數(shù)就好了

{ path: ’/careerAddMainTeam’, name: ’CareerAddMainTeam’, component: CareerAddMainTeam, meta: { touFlag: true } },

當(dāng)然你也可以使用to.name ,如果需要跳轉(zhuǎn)頁面不多的話

beforeRouteLeave (to, from, next) { // 離開路由前 let that = this if (to.name === ’CareerAddMainTeam’) { let scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop this.$store.commit(’setCarrerTouScroll’, scrollTop) } else { this.$store.commit(’setCarrerTouScroll’, 0) } next() },

3.最后一步就是在每次b頁面獲取完數(shù)據(jù)的時(shí)候使用$nextTick,讓頁面恢復(fù)到上次瀏覽的位置

this.$nextTick(() => { this.scrollTop = this.$store.state.carrerTouScroll.height document.documentElement.scrollTop = this.scrollTop })

一定要在b頁面獲取完數(shù)據(jù)后使用nextTick,不然是沒有效果的

這次就記錄到這,如果有別的好方法,請(qǐng)指出

到此這篇關(guān)于vue 移動(dòng)端記錄頁面瀏覽位置的方法的文章就介紹到這了,更多相關(guān)vue 移動(dòng)端頁面瀏覽位置內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Vue
相關(guān)文章:
主站蜘蛛池模板: 嘉义县| 新蔡县| 土默特左旗| 化隆| 竹北市| 南和县| 噶尔县| 天津市| 宜川县| 临沭县| 左云县| 四平市| 徐水县| 富宁县| 任丘市| 凤冈县| 饶阳县| 彩票| 通河县| 印江| 珲春市| 巴青县| 凌海市| 宝兴县| 军事| 新源县| 九江县| 江安县| 保定市| 兴仁县| 巴塘县| 南丹县| 元江| 门源| 宣汉县| 栾城县| 罗城| 乃东县| 密山市| 榆中县| 太康县|