国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

vue通過滾動行為實現從列表到詳情,返回列表原位置的方法

2019-11-19 13:05:43
字體:
來源:轉載
供稿:網友

vue項目滾動行為

場景:項目中,從列表進入詳情,再從詳情返回列表時,想直接定位到離開時的位置。

列表頁點擊某一個進入到詳情頁:

進入到詳情頁:

從詳情頁點擊返回到列表頁到離開的位置:

實現方式一:html5 history模式

1在路由設置router/index.js中,設置組件的元信息被緩存。(keepAlive:true),并修改mode模式為history。

export defaultnewRouter({
 mode: 'history' // 默認hash routes: [// ***************** 列表組件 ******************** // {  path: '/',  name: list,  component: list,  meta: {  keepAlive: true  } }

2該組件路由被匹配顯示的方式:

<keep-alive> <router-view v-if="$route.meta.keepAlive"></router-view></keep-alive><router-view v-if="!$route.meta.keepAlive"></router-view>

實現方式二:監聽scrollTop, js原始寫法(組件同樣需要設置緩存keep-alive)

1在組件的data中定義一個scrollTop屬性,用來記錄監聽的scrollTop。

2在created或者mounted鉤子里添加監聽事件。

mounted () { document.addEventListener('scroll',this.handelscroll)},

3在methods方法中定義這個handelscroll方法,并將監聽的scrollTop賦值給data中的scrollTop()

handelscroll() { this.scrollTop = document.body.scrollTop|| document.documentElement.scrollTop || window.pageYOffset},

4在deactivated鉤子里記錄當前的scrolltop(即從列表頁進入詳情頁)

deactivated (){ sessionStorage.setItem('scrollTop',this.scrollTop)},

這里存到了sessionStorage里邊,也可以使用狀態管理。

5在activated鉤子里,定位保存的scrollTop(即從詳情頁返回列表頁)

activated () { document.body.scrollTop =document.documentElement.scrollTop = window.pageYOffset =sessionStorage.getItem('scrollTop')},

以上這篇vue通過滾動行為實現從列表到詳情,返回列表原位置的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 石柱| 利川市| 周至县| 南乐县| 鹰潭市| 新营市| 西吉县| 南靖县| 罗源县| 托克逊县| 沭阳县| 云南省| 泽州县| 广德县| 天台县| 邹城市| 凤庆县| 遵化市| 横山县| 武冈市| 高密市| 天峻县| 江陵县| 保亭| 林口县| 麻江县| 本溪市| 肥东县| 洛隆县| 蓬安县| 凤山市| 临夏市| 杭锦后旗| 蒲江县| 吴江市| 六枝特区| 阜阳市| 错那县| 互助| 湘潭市| 永年县|