摘要:滾動行為使用前端路由,當切換到新路由時,想要頁面滾到頂部,或者是保持原先的滾動位置,就像重新加載頁面那樣。注意,這個功能只能在模式下啟用滾動的位置方法接收和路由對象。
滾動行為
使用前端路由,當切換到新路由時,想要頁面滾到頂部,或者是保持原先的滾動位置,就像重新加載頁面那樣。 vue-router 能做到,而且更好,它讓你可以自定義路由切換時頁面如何滾動。
注意,這個功能只能在history模式下啟用
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:number,y:number} }
意思就是所有的路由導航,都會返回到頁面的頂部.
滾動到錨點:
scrollBehavior (to, from, savedPosition) { if (to.hash) { return { selector: to.hash } } }
利用錨點行為做一個小例子,一個藍色和紅色的P標簽作為錨點,當點擊相應的鏈接時,頁面滾動到相應的錨點上:
HTML
滾動效果
首頁 導航 關于 紅 藍
javascript
var Home = { template:"home" } var Foo = { template:"nav" } var Bar = { template: `about` } var router = new VueRouter({ mode:"history", //控制滾動位置 scrollBehavior (to, from, savedPosition) { //判斷如果滾動條的位置存在直接返回到當前位置,否者返回到起點 if (savedPosition) { return savedPosition } else { if (to.hash) { return {selector: to.hash} } } }, routes:[ { path:"/",component:Home }, { path:"/foo",component:Foo }, { path:"/about",component:Bar } ] }); var vm = new Vue({ el:"#app", router });紅色頁面
藍色頁面
大家可以把html部分和js部分復制到自己的編輯器中試一試
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/91734.html
摘要:調用全局的守衛。在被激活的組件里調用。用創建好的實例調用守衛中傳給的回調函數。 本文適用于對 Vue.js 和 vue-router 有一定程度了解的開發者除特殊說明,vue-router 版本為 3.0.2 正文 路由 class 匹配 路由匹配后會給該標簽添加 class 屬性值 .router-link-active,該功能在嵌套路由中十分方便 class 的實際屬性值可以通...
摘要:注意這個功能只在支持的瀏覽器中可用。官方文檔簡介滾動行為使用方法期望滾動到哪個的位置或者集成模式寫法期望滾動到哪個的位置方法接收和路由對象。 前提:之前寫過關于keep-Alive組件,來實現在列表頁進入詳情頁后,后退,返回列表,顯示上次訪問的位置(原理就是緩存列表頁數據來實現),目前發現另外一個問題,就是如果后臺操作改變數據的狀態,緩存的辦法就會導致數據更新不及時導致一些頁面錯誤(例...
摘要:滾動行為使用前端路由,當切換到新路由時,想要頁面滾到頂部,或者是保持原先的滾動位置,就像重新加載頁面那樣。這個方法返回滾動位置的對象信息,長這樣如果返回一個布爾假的值,或者是一個空對象,那么不會發生滾動。 滾動行為 使用前端路由,當切換到新路由時,想要頁面滾到頂部,或者是保持原先的滾動位置,就像重新加載頁面那樣。 vue-router 能做到,而且更好,它讓你可以自定義路由切換時頁面...
閱讀 3494·2021-11-18 10:02
閱讀 1624·2021-10-12 10:12
閱讀 3008·2021-10-09 09:53
閱讀 4904·2021-09-09 09:34
閱讀 887·2021-09-06 15:02
閱讀 2789·2021-08-05 10:02
閱讀 3149·2019-08-30 15:44
閱讀 3133·2019-08-28 18:04