vue移動端專案記錄滾動位置方案總結

2021-09-11 11:28:33 字數 983 閱讀 8993

最近在用vue做移動端專案,列表展示頁面有很多條資料,在滑動到下面的時候,點到對應詳情頁,此時後退,應該在之前滾動的位置,不能滾動到頂部,這就需要記錄滾動位置。這是需求,說完了需求,就考慮怎麼實現吧!

在路由檔案router.js中設定快取,方式如下

}複製**

這樣的話,後退的時候就不會重新整理頁面,完成第一步。

給滾動元素父級設定乙個別名ref值,比如叫scroll吧。

let that=this;

this.$refs.scroll.addeventlistener("scroll",that.recordscrollposition,true); //新增繫結事件

複製**

recordscrollposition是乙個方法,用於記錄滾動位置。這裡有乙個需要注意的點,必須先把this物件儲存一下,不然的話直接用this.recordscrollposition是無法呼叫到recordscrollposition,因為此時this指向的是當前dom節點,而不是vue例項,自然無法呼叫到methods裡定義的方法,當時這個地方沒注意,卡了好久。

這個監聽的動作要寫在activated週期裡,每次進入都要監聽。

activated

(), deactivated

()複製**

當然最後應該銷毀監聽。

這裡儲存滾動位置的話可以將其存到localstorage裡,也可以將其存到vuex裡,這裡我為了方便就把它存到vuex裡了。

recordscrollposition(e) 

複製**

const state = 

const mutations=

}const getters =

}const actions = ,top)

}複製**

移動端彈性滑動以及vue記錄滑動位置

webkit overflow scrolling auto touch auto 普通滾動,當手指從觸控螢幕上移開,滾動立即停止 touch 滾動回彈效果,當手指從觸控螢幕上移開,內容會保持一段時間的滾動效果,繼續滾動的速度和持續的時間和滾動手勢的強烈程度成正比。同時也會建立乙個新的堆疊上下文。o...

VUE移動端 模態框滾動穿透問題

1 v show顯示模態框 2 watch 監聽模態框 的變化 watch 3 在ishidden值發生變化的時候,a 阻止瀏覽器的預設行為,同時禁止頁面滾動 scrollstop document.body.style.overflow hidden document.addeventlisten...

VUE專案測試,移動端

vue專案,進行移動端測試操作步驟 1 執行專案 npm run dev2 電腦建立熱點 3 手機連線熱點,通過本地ip 訪問專案 查詢本地網域名稱 1 windows r 輸入 cmd 2 輸入 ipconfig 3 ipv4 位址 就是ip位址了 4 發現報錯,無法訪問 5 解決 方法一 找到檔...