The scroll bar position is retained when scrolling the vant list component. This needs to be used in conjunction with keepAlive. I share this article for your reference. 1. The premise of saving the location is to use the keepAlive component for caching, app.vue code <template> <div id="app"> <keep-alive> <router-view v-if='$route.meta.keepAlive'/> </keep-alive> <router-view v-if='!$route.meta.keepAlive'/> </div> </template> 2. In the routing file router.js, add scrollTop and keepAlive to each routing meta { path: '/home', name: 'home', component: resolve => require(['@/views/home/index.vue'], resolve), meta: { title: 'Homepage', index: 1, keepAlive: true, scrollTop: 0 } }, { path: '/classify', name: 'classify', component: resolve => require(['@/views/classify/index.vue'], resolve), meta: { title: 'Classification', index: 1, keepAlive: true, scrollTop: 0 } }, { path: '/shopping', name: 'shopping', component: resolve => require(['@/views/shopping/index.vue'], resolve), meta: { title: 'Shopping Cart', index: 1, keepAlive: true, scrollTop: 0 } }, { path: '/detail', name: 'detail', component: resolve => require(['@/views/detail/index.vue'], resolve), meta: { title: 'Details', index: 2, // keepAlive: true, // scrollTop: 0 } }, 3. Then in main.js, record the position of the scroll bar router.beforeEach((to, from, next) => { if (from.meta.keepAlive) { const $wrapper = document.querySelector('.app-wrapper'); // The outer container of the list should pay attention to finding the scrolling box const scrollTop = $wrapper ? $wrapper.scrollTop : 0; console.log('scrollTop=', scrollTop) from.meta.scrollTop = scrollTop; } next(); }); 4. Finally, get the scrollTop by activated (this function will be executed every time you enter the page, and it is only effective when used in conjunction with the keepAlive component) where you need to record the scroll bar position activated () { const scrollTop = this.$route.meta.scrollTop; const $wrapper = document.querySelector('.app-wrapper'); if (scrollTop && $wrapper) { $wrapper.scrollTop = scrollTop; } }, For example, if you cache some pages and do not want to scroll with them, you can set scrollTop to 0; activated() { const $wrapper = document.querySelector(".app-wrapper"); $wrapper.scrollTop = 0; }, Note that if the page scrolls, other pages with scroll bars will also scroll with it. You can process it in other pages, or determine whether to cache the location from the detail page to the list page. If not, return to the top, but pay attention to the use of the routing hook function this; You may also be interested in:
|
<<: Understand the principle of page replacement algorithm through code examples
>>: How to enable the root account in Ubuntu 20.04
This article shares the specific code of JavaScri...
Songti: SimSun Bold: SimHei Microsoft YaHei: Micr...
Table of contents DML statements 1. Insert record...
Table of contents 1. Control the display and hidi...
This article shares the specific code of the jQue...
background Getting the slow query log from mysql....
Professional web design is complex and time-consu...
Preface: I'm currently learning Linux and .Ne...
Linux uses iftop to monitor the traffic of the ne...
This article shares the installation of MySQL 5.7...
MySQL is the most commonly used database. You mus...
How to host two or more sites on the popular and ...
first step: In VMware, click "Edit" - &...
This article uses an example to describe the inte...