作為vue的初級(jí)使用者,在開發(fā)過(guò)程中遇到的坑太多了。在看頁(yè)面的時(shí)候發(fā)現(xiàn)了頁(yè)面滾動(dòng)的問(wèn)題,當(dāng)一個(gè)頁(yè)面滾動(dòng)了,點(diǎn)擊頁(yè)面上的路由調(diào)到下一個(gè)頁(yè)面時(shí),跳轉(zhuǎn)后的頁(yè)面也是滾動(dòng)的,滾動(dòng)條并不是在頁(yè)面的頂部。
目前成都創(chuàng)新互聯(lián)公司已為近1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、綿陽(yáng)服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、合川網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
最開始我使用了一個(gè)很笨的方法,每個(gè)頁(yè)面上都加上window.scrollTop(0,0);來(lái)解決問(wèn)題,但是這個(gè)太繁瑣了。最后和小伙伴們商量了一下,在main.js頁(yè)面上加了這么一段代碼
router.afterEach(function (to) { window.scrollTo(0, 0) })
路由跳轉(zhuǎn)后就不會(huì)出現(xiàn)滾動(dòng)的問(wèn)題了。
但是這種做法是不友好的,我們可以使用scrollBehavior (to, from, savedPosition) {}來(lái)解決問(wèn)題。
在我們寫路由的時(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)航 (通過(guò)瀏覽器的 前進(jìn)/后退 按鈕觸發(fā)) 時(shí)才可用。它的使用有很多種,可以試試。
以上這篇解決vue單頁(yè)路由跳轉(zhuǎn)后scrollTop的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持創(chuàng)新互聯(lián)。
當(dāng)前題目:解決vue單頁(yè)路由跳轉(zhuǎn)后scrollTop的問(wèn)題
路徑分享:http://aaarwkj.com/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í)需注明來(lái)源: 創(chuàng)新互聯(lián)