vue-router中的滾動行為


 

官方文檔:

https://router.vuejs.org/zh/guide/advanced/scroll-behavior.html#%E5%BC%82%E6%AD%A5%E6%BB%9A%E5%8A%A8

使用前端路由,當切換到新路由時,想要頁面滾到頂部,或者是保持原先的滾動位置,就像重新加載頁面那樣。 vue-router 能做到,而且更好,它讓你可以自定義路由切換時頁面如何滾動。

實際例子:通過vue-router提供的scrollBehavior函數來控制滾動的位置的不由切換頁面而改變

 1 //創建路由
 2 export const createRouter = () => new VueRouter({
 3   // https://router.vuejs.org/zh/guide/advanced/scroll-behavior.html#%E5%BC%82%E6%AD%A5%E6%BB%9A%E5%8A%A8
 4   // 這個方法 是控制滾動條
 5   // 如果 retuen falsy || {} ,則不發生滾動
 6   scrollBehavior (to, from, savedPosition) {
 7     // savedPosition 這個參數當且僅當導航 (通過瀏覽器的 前進/后退 按鈕觸發) 時才可用  效果和 router.go() 或 router.back()
 8     if (savedPosition) {
 9       // 返回savedPosition 其實就是 當用戶點擊 返回的話,保持之前游覽的高度
10       return savedPosition
11     } else {
12       if (from.meta.keepAlive) {
13         from.meta.savedPosition = document.body.scrollTop
14       }
15       return {
16         x: 0,
17         y: to.meta.savedPosition || 0
18       }
19     }
20   },
21   mode: 'history',
22   routes: [...PageRouter, ...ViewsRouter]
23 })

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM