解决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 相关文章推荐
window.open()弹出居中的窗口
Feb 01 Javascript
一起来写段JS drag拖动代码
Dec 09 Javascript
jquery事件机制扩展插件 jquery鼠标右键事件。
Dec 26 Javascript
JS两种定义方式的区别、内部原理
Nov 21 Javascript
escape函数解决js中ajax传递中文出现乱码问题
Oct 30 Javascript
jQuery $命名冲突解决方案汇总
Nov 13 Javascript
必备的JS调试技巧汇总
Jul 20 Javascript
微信小程序 自定义对话框实例详解
Jan 20 Javascript
教你用十行node.js代码读取docx的文本
Mar 08 Javascript
Angular 4依赖注入学习教程之ValueProvider的使用(七)
Jun 04 Javascript
jQuery实现html table行Tr的复制、删除、计算功能
Jul 10 jQuery
js 取消页面可以选中文字的功能方法
Jan 02 Javascript
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
跨浏览器PHP下载文件名中的中文乱码问题解决方法
2015/03/05 PHP
PHP递归删除多维数组中的某个值
2017/04/17 PHP
关于Laravel-admin的基础用法总结和自定义model详解
2019/10/08 PHP
js将iframe中控件的值传到主页面控件中的实现方法
2013/03/11 Javascript
Jquery获取复选框被选中值的简单方法
2013/07/04 Javascript
JavaScript判断密码强度(自写代码)
2013/09/06 Javascript
javascript通过元素id和name直接取得元素的方法
2015/04/28 Javascript
jQuery实现的图文高亮滚动切换特效实例
2015/08/10 Javascript
浏览器检测JS代码(兼容目前各大主流浏览器)
2016/02/21 Javascript
如何使用PHP+jQuery+MySQL实现异步加载ECharts地图数据(附源码下载)
2016/02/23 Javascript
JS中的二叉树遍历详解
2016/03/18 Javascript
js, jQuery实现全选、反选功能
2017/03/08 Javascript
Angualrjs 表单验证的两种方式(失去焦点验证和点击提交验证)
2017/05/09 Javascript
vue.js框架实现表单排序和分页效果
2017/08/09 Javascript
Vue使用枚举类型实现HTML下拉框步骤详解
2018/02/05 Javascript
angularjs 动态从后台获取下拉框的值方法
2018/08/13 Javascript
区别JavaScript函数声明与变量声明
2018/09/12 Javascript
tweenjs缓动算法的使用实例分析
2019/08/26 Javascript
Vue.js仿Select下拉框效果
2020/02/18 Javascript
JavaScript链式调用原理与实现方法详解
2020/05/16 Javascript
python为tornado添加recaptcha验证码功能
2014/02/26 Python
Python实现PS滤镜Fish lens图像扭曲效果示例
2018/01/29 Python
Python+Django搭建自己的blog网站
2018/03/13 Python
python安装模块如何通过setup.py安装(超简单)
2018/05/05 Python
Python 运行 shell 获取输出结果的实例
2019/01/07 Python
使用Jupyter notebooks上传文件夹或大量数据到服务器
2020/04/14 Python
CSS3关于z-index不生效问题的解决
2020/02/19 HTML / CSS
利用html5 file api读取本地文件示例(如图片、PDF等)
2018/03/07 HTML / CSS
写求职信有什么意义
2014/02/17 职场文书
行政办公室岗位职责
2014/03/18 职场文书
投标保密承诺书
2014/05/19 职场文书
乡镇消防安全责任书
2014/07/23 职场文书
银行岗位培训心得体会
2016/01/09 职场文书
营销策划分析:怎么策划才能更好销量产品?
2019/09/04 职场文书
创业计划书之儿童理发店
2019/09/27 职场文书
clear 万能清除浮动(clearfix:after)
2023/05/21 HTML / CSS