欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決vue單頁路由跳轉(zhuǎn)后scrollTop的問題

 更新時(shí)間:2018年09月03日 11:54:13   作者:小雷雷哥哥  
今天小編就為大家分享一篇解決vue單頁路由跳轉(zhuǎn)后scrollTop的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

作為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)條并不是在頁面的頂部。

最開始我使用了一個(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è)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論