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
Table of contents Why is IN slow? Which is faster...
Table of contents Problem Description Historical ...
The general way of writing is as follows: XML/HTM...
Table of contents 1. Demand 1. Demand 2. SDK para...
I have seen many relevant tutorials on the Intern...
MySQL is a relational database management system....
Table of contents 1. Installation 2. There is no ...
Download tutorial of mysql-connector-java.jar pac...
Table of contents 1. Technology Selection 2. Tech...
The solution to the problem that the PHP7.3 versi...
Note: The nginx version must be 1.9 or above. Whe...
Precondition: content="width=750" <m...
This article shares the specific code of jQuery t...
1. This is a bit complicated to understand, I hop...
Table of contents 1. lazy 2.trim 3.number 4.stop ...