摘要:滾動行為使用前端路由,當切換到新路由時,想要頁面滾到頂部,或者是保持原先的滾動位置,就像重新加載頁面那樣。這個方法返回滾動位置的對象信息,長這樣如果返回一個布爾假的值,或者是一個空對象,那么不會發生滾動。
滾動行為
使用前端路由,當切換到新路由時,想要頁面滾到頂部,或者是保持原先的滾動位置,就像重新加載頁面那樣。 vue-router 能做到,而且更好,它讓你可以自定義路由切換時頁面如何滾動。
注意: 這個功能只在 HTML5 history 模式下可用。
當創建一個 Router 實例,你可以提供一個 scrollBehavior 方法:
var router = new VueRouter({ routes: [...], scrollBehavior (to, from, savedPosition) { // return 期望滾動到哪個的位置 } })
scrollBehavior 方法接收 to 和 from 路由對象。第三個參數 savedPosition 當且僅當 popstate 導航 (通過瀏覽器的 前進/后退 按鈕觸發) 時才可用。
這個方法返回滾動位置的對象信息,長這樣:
{ x: number, y: number } { selector: string }
如果返回一個布爾假的值,或者是一個空對象,那么不會發生滾動。
舉例:
scrollBehavior (to, from, savedPosition) { return { x: 0, y: 0 } }
對于所有路由導航,簡單地讓頁面滾動到頂部。
返回 savedPosition,在按下 后退/前進 按鈕時,就會像瀏覽器的原生表現那樣:
scrollBehavior (to, from, savedPosition) { if (savedPosition) { return savedPosition } else { return { x: 0, y: 0 } } }
如果你要模擬『滾動到錨點』的行為:
scrollBehavior (to, from, savedPosition) { if (to.hash) { return { selector: to.hash } } }
演示地址 : https://smallmotor.github.io/d
進階一(導航鉤子和路由元信息) : https://segmentfault.com/a/11...
進階二(過渡動效) : https://segmentfault.com/a/11...
進階三(數據獲取) : https://segmentfault.com/a/11...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/91758.html
摘要:滾動行為使用前端路由,當切換到新路由時,想要頁面滾到頂部,或者是保持原先的滾動位置,就像重新加載頁面那樣。注意,這個功能只能在模式下啟用滾動的位置方法接收和路由對象。 滾動行為 使用前端路由,當切換到新路由時,想要頁面滾到頂部,或者是保持原先的滾動位置,就像重新加載頁面那樣。 vue-router 能做到,而且更好,它讓你可以自定義路由切換時頁面如何滾動。 注意,這個功能只能在hist...
摘要:注意這個功能只在支持的瀏覽器中可用。官方文檔簡介滾動行為使用方法期望滾動到哪個的位置或者集成模式寫法期望滾動到哪個的位置方法接收和路由對象。 前提:之前寫過關于keep-Alive組件,來實現在列表頁進入詳情頁后,后退,返回列表,顯示上次訪問的位置(原理就是緩存列表頁數據來實現),目前發現另外一個問題,就是如果后臺操作改變數據的狀態,緩存的辦法就會導致數據更新不及時導致一些頁面錯誤(例...
閱讀 3708·2021-10-18 13:34
閱讀 2397·2021-08-11 11:15
閱讀 1201·2019-08-30 15:44
閱讀 687·2019-08-26 10:32
閱讀 986·2019-08-26 10:13
閱讀 2065·2019-08-23 18:36
閱讀 1775·2019-08-23 18:35
閱讀 523·2019-08-23 17:10