解决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 相关文章推荐
jquery动态加载图片数据练习代码
Aug 04 Javascript
jQuery点击按钮弹出遮罩层且内容居中特效
Dec 14 Javascript
AngularJS入门教程之Scope(作用域)
Jul 27 Javascript
避免jQuery名字冲突 noConflict()方法
Jul 30 Javascript
js实现目录链接,内容跟着目录滚动显示的简单实例
Oct 15 Javascript
判断颜色是否合法的正则表达式(详解)
May 03 Javascript
JavaScript你不知道的一些数组方法
Aug 18 Javascript
vue2.0开发入门笔记之.vue文件的生成和使用
Sep 19 Javascript
vue-cli3.0 特性解读
Apr 22 Javascript
超详细动手搭建一个VuePress 站点及开启PWA与自动部署的方法
Jan 27 Javascript
vue项目部署到nginx/tomcat服务器的实现
Aug 26 Javascript
js实现盒子滚动动画效果
Aug 09 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
javascript trim函数在IE下不能用的解决方法
2014/09/12 Javascript
完美兼容IE,chrome,ff的设为首页、加入收藏及保存到桌面js代码
2014/12/17 Javascript
简单实现兼容各大浏览器的js复制内容到剪切板
2015/09/09 Javascript
Eclipse引入jquery报错如何解决
2015/12/01 Javascript
APP中javascript+css3实现下拉刷新效果
2016/01/27 Javascript
微信小程序链接传参并跳转新页面
2016/11/29 Javascript
flexslider.js实现移动端轮播
2017/02/05 Javascript
Vue组件开发初探
2017/02/14 Javascript
浅谈react+es6+webpack的基础配置
2017/08/09 Javascript
Element-UI Table组件上添加列拖拽效果实现方法
2018/04/14 Javascript
vue-cli webpack配置文件分析
2019/05/20 Javascript
vue操作dom元素的3种方法示例
2020/09/20 Javascript
jQuery实现穿梭框效果
2021/01/19 jQuery
如何管理Vue中的缓存页面
2021/02/06 Vue.js
Python基于回溯法子集树模板解决选排问题示例
2017/09/07 Python
python 3.0 模拟用户登录功能并实现三次错误锁定
2017/11/01 Python
Python中pygal绘制雷达图代码分享
2017/12/07 Python
Python中getpass模块无回显输入源码解析
2018/01/11 Python
python中退出多层循环的方法
2018/11/27 Python
解决python2 绘图title,xlabel,ylabel出现中文乱码的问题
2019/01/29 Python
python给图像加上mask,并提取mask区域实例
2020/01/19 Python
PyTorch笔记之scatter()函数的使用
2020/02/12 Python
Django数据库操作之save与update的使用
2020/04/01 Python
python使用梯度下降和牛顿法寻找Rosenbrock函数最小值实例
2020/04/02 Python
详解python os.path.exists判断文件或文件夹是否存在
2020/11/16 Python
Python中使用Selenium环境安装的方法步骤
2021/02/22 Python
HTML5自定义视频播放器源码
2020/01/06 HTML / CSS
庆中秋节主题活动方案
2014/02/03 职场文书
代理协议书范本
2014/04/22 职场文书
公司委托书怎么写
2014/08/02 职场文书
2014年建筑工作总结
2014/11/26 职场文书
店面出租协议书范本
2014/11/28 职场文书
努力学习保证书
2015/02/26 职场文书
详解如何修改nginx的默认端口
2021/03/31 Servers
MySQL query_cache_type 参数与使用详解
2021/07/01 MySQL
【海涛dota】偶遇拉娜娅 质量局德鲁伊第一视角解说
2022/04/01 DOTA