您好,登錄后才能下訂單哦!
作為vue的初級使用者,在開發過程中遇到的坑太多了。在看頁面的時候發現了頁面滾動的問題,當一個頁面滾動了,點擊頁面上的路由調到下一個頁面時,跳轉后的頁面也是滾動的,滾動條并不是在頁面的頂部。
最開始我使用了一個很笨的方法,每個頁面上都加上window.scrollTop(0,0);來解決問題,但是這個太繁瑣了。最后和小伙伴們商量了一下,在main.js頁面上加了這么一段代碼
router.afterEach(function (to) { window.scrollTo(0, 0) })
路由跳轉后就不會出現滾動的問題了。
但是這種做法是不友好的,我們可以使用scrollBehavior (to, from, savedPosition) {}來解決問題。
在我們寫路由的時候做個處理,如下
import Vue from 'vue' import Router from 'vue-router' Vue.use(Router); Vue.use(Router) export default new Router({ routes: [ { path: '/', name: 'HelloWorld', component: resolve => require(['../components/HelloWorld.vue'],resolve) } ], scrollBehavior (to, from, savedPosition) { if (savedPosition) { return savedPosition } else { return { x: 0, y: 0 } } } })
scrollBehavior 方法接收 to 和 from 路由對象。第三個參數 savedPosition 當且僅當 popstate 導航 (通過瀏覽器的 前進/后退 按鈕觸發) 時才可用。它的使用有很多種,可以試試。
以上這篇解決vue單頁路由跳轉后scrollTop的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。