解决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 CSS操作方法集合
Oct 31 Javascript
基于Jquery的简单图片切换效果
Jan 06 Javascript
基于mootools插件实现遮罩层新手引导
May 24 Javascript
Node.js 服务器端应用开发框架 -- Hapi.js
Jul 29 Javascript
this,this,再次讨论javascript中的this,超全面(经典)
Jan 05 Javascript
用angular实现多选按钮的全选与反选实例代码
May 23 Javascript
原生JS实现图片无缝滚动方法(附带封装的运动框架)
Oct 01 Javascript
vue.js实现格式化时间并每秒更新显示功能示例
Jul 07 Javascript
js继承的这6种方式!(上)
Apr 23 Javascript
解决LayUI数据表格复选框不居中显示的问题
Sep 25 Javascript
three.js 实现露珠滴落动画效果的示例代码
Mar 01 Javascript
JavaScript函数柯里化
Nov 07 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
轻松修复Discuz!数据库
2008/05/03 PHP
解析coreseek for sphinx的使用
2013/06/21 PHP
php curl模拟post请求和提交多维数组的示例代码
2015/11/19 PHP
理解PHP中的Session及对Session有效期的控制
2016/01/08 PHP
PHP写的简单数字验证码实例
2017/05/23 PHP
JS backgroundImage控制
2009/05/19 Javascript
javascript 获取表单file全路径
2009/12/31 Javascript
javascript中的继承实例代码
2011/04/27 Javascript
javascript实现禁止右键和F12查看源代码
2014/12/26 Javascript
JavaScript清空数组元素的两种方法简单比较
2015/07/10 Javascript
js实现浏览器倒计时跳转页面效果
2016/08/12 Javascript
javascript函数的四种调用模式
2017/01/08 Javascript
javascript循环链表之约瑟夫环的实现方法
2017/01/16 Javascript
Bootstrap jquery.twbsPagination.js动态页码分页实例代码
2017/02/20 Javascript
使用 Vue.js 仿百度搜索框的实例代码
2017/05/09 Javascript
利用PM2部署node.js项目的方法教程
2017/05/10 Javascript
JavaScript实现自动跳转文本功能
2017/05/25 Javascript
详解Vue组件之间的数据通信实例
2017/06/17 Javascript
JS实现标签滚动切换效果
2017/12/25 Javascript
vue bus全局事件中心简单Demo详解
2018/02/26 Javascript
移动端底部导航固定配合vue-router实现组件切换功能
2019/06/13 Javascript
使用 webpack 插件自动生成 vue 路由文件的方法
2019/08/20 Javascript
浅谈如何优雅处理JavaScript异步错误
2019/11/12 Javascript
python调用shell的方法
2013/11/20 Python
在Python中使用pngquant压缩png图片的教程
2015/04/09 Python
Python使用Mechanize模块编写爬虫的要点解析
2016/03/31 Python
django为Form生成的label标签添加class方式
2020/05/20 Python
Python如何在循环内使用list.remove()
2020/06/01 Python
详解python的变量缓存机制
2021/01/24 Python
详解win10下pytorch-gpu安装以及CUDA详细安装过程
2021/01/28 Python
英国第一的市场和亚马逊替代品:OnBuy
2019/03/16 全球购物
印度尼西亚最好的小工具在线商店:Erafone.com
2019/03/26 全球购物
消防安全宣传口号
2014/06/10 职场文书
医务人员岗前培训心得体会
2016/01/08 职场文书
使用 MybatisPlus 连接 SqlServer 数据库解决 OFFSET 分页问题
2022/04/22 SQL Server
python实现商品进销存管理系统
2022/05/30 Python