解决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
Nov 26 Javascript
Javascript操作cookie的函数代码
Oct 03 Javascript
关于javascript中的typeof和instanceof介绍
Dec 04 Javascript
jquery可见性过滤选择器使用示例
Jun 24 Javascript
SeaJS 与 RequireJS 的差异对比
Dec 08 Javascript
在JavaScript中访问字符串的子串
Jul 07 Javascript
深入理解MVC中的时间js格式化
May 19 Javascript
js 判断数据类型的几种方法
Jan 13 Javascript
[原创]jQuery实现合并/追加数组并去除重复项的方法
Apr 11 jQuery
jQuery表单选择器用法详解
Aug 22 jQuery
将RGB值转换为灰度值的简单算法
Oct 09 Javascript
javascript局部自定义鼠标右键菜单
Dec 08 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 json_encode奇怪问题说明
2011/09/27 PHP
解析VS2010利用VS.PHP插件调试PHP的方法
2013/07/19 PHP
php连接oracle数据库的核心步骤
2016/05/26 PHP
php opendir()列出目录下所有文件的实例代码
2016/10/02 PHP
php将服务端的文件读出来显示在web页面实例
2016/10/31 PHP
jQuery学习笔记 操作jQuery对象 属性处理
2012/09/19 Javascript
Jquery:ajax实现翻页无刷新功能代码
2013/08/05 Javascript
了不起的node.js读书笔记之例程分析
2014/12/22 Javascript
使用vue编写一个点击数字计时小游戏
2016/08/31 Javascript
JS与jQuery实现隔行变色的方法
2016/09/09 Javascript
详解JS-- 浮点数运算处理
2016/11/28 Javascript
解决BootStrap Fileinput手机图片上传显示旋转问题
2017/06/01 Javascript
使用Vue-Router 2实现路由功能实例详解
2017/11/14 Javascript
微信小程序当前时间时段选择器插件使用方法详解
2018/12/28 Javascript
layui lay-verify form表单自定义验证规则详解
2019/09/18 Javascript
用js限制网页只在微信浏览器中打开(或者只能手机端访问)
2020/12/24 Javascript
[04:29]2014DOTA2国际邀请赛 主赛事第三日TOPPLAY
2014/07/21 DOTA
[01:00:04]DOTA2上海特级锦标赛B组小组赛#1 Alliance VS Spirit第二局
2016/02/26 DOTA
[53:43]VP vs NewBee Supermajor 胜者组 BO3 第三场 6.5
2018/06/06 DOTA
[56:42]VP vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
[36:41]完美世界DOTA2联赛循环赛FTD vs Magma第一场 10月30日
2020/10/31 DOTA
[49:12]完美世界DOTA2联赛PWL S2 Magma vs GXR 第二场 11.29
2020/12/02 DOTA
Python中AND、OR的一个使用小技巧
2015/02/18 Python
python中正则表达式的使用方法
2018/02/25 Python
Python3批量移动指定文件到指定文件夹方法示例
2019/09/02 Python
Tensorflow不支持AVX2指令集的解决方法
2020/02/03 Python
浅谈在django中使用redirect重定向数据传输的问题
2020/03/13 Python
python3通过qq邮箱发送邮件以及附件
2020/05/20 Python
HTML5和CSS3让网页设计提升到下一个高度
2009/08/14 HTML / CSS
国际贸易专业个人职业生涯规划
2014/02/15 职场文书
鸿星尔克广告词
2014/03/21 职场文书
关于奉献的演讲稿
2014/05/21 职场文书
2014年圣诞节寄语
2014/12/08 职场文书
个人先进事迹材料
2014/12/29 职场文书
为什么 Nginx 比 Apache 更牛逼
2021/03/31 Servers
正确使用MySQL update语句
2021/05/26 MySQL