解决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 相关文章推荐
JS字符串拼接在ie中都报错的解决方法
Mar 27 Javascript
JQuery EasyUI的使用
Feb 24 Javascript
原生JS实现图片轮播效果
Dec 26 Javascript
jQuery动态生成表格及右键菜单功能示例
Jan 13 Javascript
jQuery实现淡入淡出的模态框
Feb 09 Javascript
element-ui 设置菜单栏展开的方法
Aug 22 Javascript
vue写h5页面的方法总结
Feb 12 Javascript
vue 中Virtual Dom被创建的方法
Apr 15 Javascript
mock.js模拟前后台交互
Jul 25 Javascript
vue实现浏览器全屏展示功能
Nov 27 Javascript
微信小程序间使用navigator跳转传值问题实例分析
Mar 27 Javascript
解决vue elementUI 使用el-select 时 change事件的触发问题
Nov 17 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
Smarty Foreach 使用说明
2010/03/23 PHP
7个超级实用的PHP代码片段
2011/07/11 PHP
基于ubuntu下nginx+php+mysql安装配置的具体操作步骤
2013/04/28 PHP
smarty模板中拼接字符串的方法
2014/02/14 PHP
PHP加Nginx实现动态裁剪图片方案
2014/03/10 PHP
destoon安装出现Internal Server Error的解决方法
2014/06/21 PHP
PHP下载远程图片的几种方法总结
2017/04/07 PHP
ZendFramework2连接数据库操作实例
2017/04/18 PHP
php设计模式之工厂方法模式分析【星际争霸游戏案例】
2020/01/23 PHP
PHP 实现缩略图
2021/03/09 PHP
写了10年的Javascript也未必全了解的连续赋值运算
2011/03/25 Javascript
jQuery EasyUI datagrid实现本地分页的方法
2015/02/13 Javascript
jquery实现带缩略图的全屏图片画廊效果实例
2015/06/25 Javascript
JavaScript取得键盘按下方向键是哪个的方法
2015/08/04 Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(基于jquery)
2015/11/18 Javascript
基于jquery实现弹幕效果
2016/09/29 Javascript
Vue中使用方法、计算属性或观察者的方法实例详解
2018/10/31 Javascript
JavaScript中AOP的实现与应用
2019/05/06 Javascript
微信小程序地图实现展示线路
2020/07/29 Javascript
[02:22:36]《加油!DOTA》总决赛
2014/09/19 DOTA
[58:18]2018DOTA2亚洲邀请赛3月29日 小组赛B组 iG VS Mineski
2018/03/30 DOTA
windows下安装Python的XlsxWriter模块方法
2018/05/03 Python
Python如何通过Flask-Mail发送电子邮件
2020/01/29 Python
详解scrapy内置中间件的顺序
2020/09/28 Python
Python实现淘宝秒杀功能的示例代码
2021/01/19 Python
师范生教师实习自我鉴定
2013/09/27 职场文书
护士自我鉴定怎么写
2014/02/07 职场文书
周年庆典主持词
2014/04/02 职场文书
解除合同协议书
2014/04/17 职场文书
二年级班级文化建设方案
2014/05/10 职场文书
学习十八大宣传标语
2014/10/09 职场文书
优秀党员申报材料
2014/12/18 职场文书
环保建议书作文400字
2015/09/14 职场文书
2016党员干部廉洁自律心得体会
2016/01/13 职场文书
python unittest单元测试的步骤分析
2021/08/02 Python
「魔法少女伊莉雅」美游粘土人开订
2022/03/21 日漫