摘要:滾動(dòng)行為使用前端路由,當(dāng)切換到新路由時(shí),想要頁面滾到頂部,或者是保持原先的滾動(dòng)位置,就像重新加載頁面那樣。這個(gè)方法返回滾動(dòng)位置的對(duì)象信息,長這樣如果返回一個(gè)布爾假的值,或者是一個(gè)空對(duì)象,那么不會(huì)發(fā)生滾動(dòng)。
滾動(dòng)行為
使用前端路由,當(dāng)切換到新路由時(shí),想要頁面滾到頂部,或者是保持原先的滾動(dòng)位置,就像重新加載頁面那樣。 vue-router 能做到,而且更好,它讓你可以自定義路由切換時(shí)頁面如何滾動(dòng)。
注意: 這個(gè)功能只在 HTML5 history 模式下可用。
當(dāng)創(chuàng)建一個(gè) Router 實(shí)例,你可以提供一個(gè) scrollBehavior 方法:
var router = new VueRouter({ routes: [...], scrollBehavior (to, from, savedPosition) { // return 期望滾動(dòng)到哪個(gè)的位置 } })
scrollBehavior 方法接收 to 和 from 路由對(duì)象。第三個(gè)參數(shù) savedPosition 當(dāng)且僅當(dāng) popstate 導(dǎo)航 (通過瀏覽器的 前進(jìn)/后退 按鈕觸發(fā)) 時(shí)才可用。
這個(gè)方法返回滾動(dòng)位置的對(duì)象信息,長這樣:
{ x: number, y: number } { selector: string }
如果返回一個(gè)布爾假的值,或者是一個(gè)空對(duì)象,那么不會(huì)發(fā)生滾動(dòng)。
舉例:
scrollBehavior (to, from, savedPosition) { return { x: 0, y: 0 } }
對(duì)于所有路由導(dǎo)航,簡(jiǎn)單地讓頁面滾動(dòng)到頂部。
返回 savedPosition,在按下 后退/前進(jìn) 按鈕時(shí),就會(huì)像瀏覽器的原生表現(xiàn)那樣:
scrollBehavior (to, from, savedPosition) { if (savedPosition) { return savedPosition } else { return { x: 0, y: 0 } } }
如果你要模擬『滾動(dòng)到錨點(diǎn)』的行為:
scrollBehavior (to, from, savedPosition) { if (to.hash) { return { selector: to.hash } } }
演示地址 : https://smallmotor.github.io/d
進(jìn)階一(導(dǎo)航鉤子和路由元信息) : https://segmentfault.com/a/11...
進(jìn)階二(過渡動(dòng)效) : https://segmentfault.com/a/11...
進(jìn)階三(數(shù)據(jù)獲取) : https://segmentfault.com/a/11...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/91758.html
摘要:滾動(dòng)行為使用前端路由,當(dāng)切換到新路由時(shí),想要頁面滾到頂部,或者是保持原先的滾動(dòng)位置,就像重新加載頁面那樣。注意,這個(gè)功能只能在模式下啟用滾動(dòng)的位置方法接收和路由對(duì)象。 滾動(dòng)行為 使用前端路由,當(dāng)切換到新路由時(shí),想要頁面滾到頂部,或者是保持原先的滾動(dòng)位置,就像重新加載頁面那樣。 vue-router 能做到,而且更好,它讓你可以自定義路由切換時(shí)頁面如何滾動(dòng)。 注意,這個(gè)功能只能在hist...
摘要:當(dāng)對(duì)應(yīng)的路由匹配成功,將自動(dòng)設(shè)置屬性值。執(zhí)行效果依賴方法的調(diào)用參數(shù)。而這個(gè)鉤子就會(huì)在這個(gè)情況下被調(diào)用。滾動(dòng)行為只在支持的瀏覽器中可用。當(dāng)且僅當(dāng)導(dǎo)航通過瀏覽器的前進(jìn)后退按鈕觸發(fā)時(shí)才可用。 當(dāng) 對(duì)應(yīng)的路由匹配成功,將自動(dòng)設(shè)置 class 屬性值 .router-link-active 。 默認(rèn) hash 模式:使用 URL 的 hash 來模擬一個(gè)完整的 URL,于是當(dāng) URL 改變時(shí)...
摘要:滾動(dòng)行為使用前端路由,當(dāng)切換到新路由時(shí),想要頁面滾到頂部,或者是保持原先的滾動(dòng)位置,就像重新加載頁面那樣。期望滾動(dòng)到哪個(gè)的位置返回滾動(dòng)位置的對(duì)象信息如果返回一個(gè)布爾假的值,或者是一個(gè)空對(duì)象,那么不會(huì)發(fā)生滾動(dòng)。 滾動(dòng)行為 使用前端路由,當(dāng)切換到新路由時(shí),想要頁面滾到頂部,或者是保持原先的滾動(dòng)位置,就像重新加載頁面那樣。 vue-router 能做到,而且更好,它讓你可以自定義路由切換時(shí)頁...
摘要:注意這個(gè)功能只在支持的瀏覽器中可用。官方文檔簡(jiǎn)介滾動(dòng)行為使用方法期望滾動(dòng)到哪個(gè)的位置或者集成模式寫法期望滾動(dòng)到哪個(gè)的位置方法接收和路由對(duì)象。 前提:之前寫過關(guān)于keep-Alive組件,來實(shí)現(xiàn)在列表頁進(jìn)入詳情頁后,后退,返回列表,顯示上次訪問的位置(原理就是緩存列表頁數(shù)據(jù)來實(shí)現(xiàn)),目前發(fā)現(xiàn)另外一個(gè)問題,就是如果后臺(tái)操作改變數(shù)據(jù)的狀態(tài),緩存的辦法就會(huì)導(dǎo)致數(shù)據(jù)更新不及時(shí)導(dǎo)致一些頁面錯(cuò)誤(例...
閱讀 3780·2021-10-18 13:34
閱讀 2493·2021-08-11 11:15
閱讀 1301·2019-08-30 15:44
閱讀 782·2019-08-26 10:32
閱讀 1053·2019-08-26 10:13
閱讀 2131·2019-08-23 18:36
閱讀 1841·2019-08-23 18:35
閱讀 591·2019-08-23 17:10