作為vue的初級(jí)使用者,在開發(fā)過程中遇到的坑太多了。在看頁面的時(shí)候發(fā)現(xiàn)了頁面滾動(dòng)的問題,當(dāng)一個(gè)頁面滾動(dòng)了,點(diǎn)擊頁面上的路由調(diào)到下一個(gè)頁面時(shí),跳轉(zhuǎn)后的頁面也是滾動(dòng)的,滾動(dòng)條并不是在頁面的頂部。
目前成都創(chuàng)新互聯(lián)公司已為近1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、綿陽服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、合川網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
最開始我使用了一個(gè)很笨的方法,每個(gè)頁面上都加上window.scrollTop(0,0);來解決問題,但是這個(gè)太繁瑣了。最后和小伙伴們商量了一下,在main.js頁面上加了這么一段代碼
router.afterEach(function (to) { window.scrollTo(0, 0) })
路由跳轉(zhuǎn)后就不會(huì)出現(xiàn)滾動(dòng)的問題了。
但是這種做法是不友好的,我們可以使用scrollBehavior (to, from, savedPosition) {}來解決問題。
在我們寫路由的時(shí)候做個(gè)處理,如下
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 路由對(duì)象。第三個(gè)參數(shù) savedPosition 當(dāng)且僅當(dāng) popstate 導(dǎo)航 (通過瀏覽器的 前進(jìn)/后退 按鈕觸發(fā)) 時(shí)才可用。它的使用有很多種,可以試試。
以上這篇解決vue單頁路由跳轉(zhuǎn)后scrollTop的問題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持創(chuàng)新互聯(lián)。
當(dāng)前題目:解決vue單頁路由跳轉(zhuǎn)后scrollTop的問題
路徑分享:http://vcdvsql.cn/article46/pdeeeg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、網(wǎng)站營(yíng)銷、靜態(tài)網(wǎng)站、網(wǎng)站收錄、做網(wǎng)站、微信公眾號(hào)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)