解决vue单页路由跳转后scrollTop的问题


Posted in Javascript onSeptember 03, 2018

作为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的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
IE中直接运行显示当前网页中的图片 推荐
Aug 31 Javascript
用js实现判断当前网址的来路如果不是指定的来路就跳转到指定页面
May 02 Javascript
根据IP的地址,区分不同的地区,查看不同的网站页面的js代码
Feb 26 Javascript
使用apply方法实现javascript中的对象继承
Dec 16 Javascript
JS使用onerror捕获异常示例
Aug 03 Javascript
修改Jquery Dialog 位置的实现方法
Aug 26 Javascript
Vue项目使用CDN优化首屏加载问题
Apr 01 Javascript
vuex2中使用mapGetters/mapActions报错的解决方法
Oct 20 Javascript
详解50行代码,Node爬虫练手项目
Apr 22 Javascript
Vue中对iframe实现keep alive无刷新的方法
Jul 23 Javascript
es6中let和const的使用方法详解
Feb 24 Javascript
Vue 事件的$event参数=事件的值案例
Jan 29 Vue.js
webpack4 SCSS提取和懒加载的示例
Sep 03 #Javascript
vue自定v-model实现表单数据双向绑定问题
Sep 03 #Javascript
详解vue-cli下ESlint 配置说明
Sep 03 #Javascript
解决vue的 v-for 循环中图片加载路径问题
Sep 03 #Javascript
Vue实现底部侧边工具栏的实例代码
Sep 03 #Javascript
Angular动态绑定样式及改变UI框架样式的方法小结
Sep 03 #Javascript
node.js使用免费的阿里云ip查询获取ip所在地【推荐】
Sep 03 #Javascript
You might like
SONY ICF-SW55的电路分析
2021/03/02 无线电
php 三维饼图的实现代码
2008/09/28 PHP
php的4种常用运行方式详解
2016/12/22 PHP
PHP+mysql防止SQL注入的方法小结
2019/04/27 PHP
Yii redis集合的基本使用教程
2020/06/14 PHP
Javascript SHA-1:Secure Hash Algorithm
2006/12/20 Javascript
jQuery+CSS 实现的超Sexy下拉菜单
2010/01/17 Javascript
js 巧妙去除数组中的重复项
2010/01/25 Javascript
深入理解javascript中return的作用
2013/12/30 Javascript
JavaScript的21条基本知识点
2014/03/04 Javascript
JS通过分析userAgent属性来判断浏览器的类型及版本
2014/03/28 Javascript
JavaScript使用setInterval()函数实现简单轮询操作的方法
2015/02/02 Javascript
JavaScript中捕获/阻止捕获、冒泡/阻止冒泡方法
2016/12/07 Javascript
详解vue-cli脚手架build目录中的dev-server.js配置文件
2017/11/24 Javascript
vue监听input标签的value值方法
2018/08/27 Javascript
easyUI 实现的后台分页与前台显示功能示例
2020/06/01 Javascript
javascript解析json格式的数据方法详解
2020/08/07 Javascript
vue之封装多个组件调用同一接口的案例
2020/08/11 Javascript
Postman参数化实现过程及原理解析
2020/08/13 Javascript
Django中实现一个高性能计数器(Counter)实例
2014/07/09 Python
Python两个整数相除得到浮点数值的方法
2015/03/18 Python
python实现马耳可夫链算法实例分析
2015/05/20 Python
python dataframe常见操作方法:实现取行、列、切片、统计特征值
2018/06/09 Python
Python同步遍历多个列表的示例
2019/02/19 Python
python使用matplotlib的savefig保存时图片保存不完整的问题
2021/01/08 Python
修复iPhone的safari浏览器上submit按钮圆角bug
2012/12/24 HTML / CSS
AmazeUI的JS表单验证框架实战示例分享
2020/08/21 HTML / CSS
Java如何支持I18N?
2016/10/31 面试题
工商管理毕业生推荐信
2013/12/24 职场文书
大四学生找工作的自荐信
2014/03/27 职场文书
企业党员个人自我评价
2014/09/20 职场文书
2014年妇幼卫生工作总结
2014/12/09 职场文书
廉政承诺书
2015/01/19 职场文书
Python还能这么玩之用Python修改了班花的开机密码
2021/06/04 Python
python编程实现清理微信重复缓存文件
2021/11/01 Python
win10忘记pin密码登录不了怎么办?win10忘记pin密码登不进去的解决方法
2022/07/07 数码科技