解决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刷新站IP和PV
Sep 05 Javascript
js中数组排序sort方法的原理分析
Nov 20 Javascript
js实现超酷的照片墙展示效果图附源码下载
Oct 08 Javascript
Node.js 应用跑得更快 10 个技巧
Apr 03 Javascript
检查表单元素的值是否为空的实例代码
Jun 16 Javascript
简单理解vue中el、template、replace元素
Oct 27 Javascript
JavaScript基于activexobject连接远程数据库SQL Server 2014的方法
Jul 12 Javascript
BootStrap modal实现拖拽功能
Dec 01 Javascript
echarts大屏字体自适应的方法步骤
Jul 12 Javascript
layui实现下拉框三级联动
Jul 26 Javascript
实例分析javascript中的异步
Jun 02 Javascript
vue 在服务器端直接修改请求的接口地址
Dec 19 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
PHP常用算法和数据结构示例(必看篇)
2017/03/15 PHP
ThinkPHP3.2.3框架邮件发送功能图文实例详解
2019/04/23 PHP
在Laravel5中正确设置文件权限的方法
2019/05/22 PHP
PHP创建XML接口示例
2019/07/04 PHP
Laravel框架Blade模板简介及模板继承用法分析
2019/12/03 PHP
建议大家看下JavaScript重要知识更新
2007/07/08 Javascript
JQuery的html(data)方法与<script>脚本块的解决方法
2010/03/09 Javascript
jquery判断浏览器类型的代码
2012/11/05 Javascript
Google Map V3 绑定气泡窗口(infowindow)Dom事件实现代码
2013/04/26 Javascript
JavaScript异步编程Promise模式的6个特性
2014/04/03 Javascript
javascript实现单击和双击并存的方法
2014/12/13 Javascript
Avalon中文长字符截取、关键字符隐藏、自定义过滤器
2016/05/18 Javascript
JavaScript仿淘宝页面图片滚动加载及刷新回顶部的方法解析
2016/05/24 Javascript
jQuery实现响应鼠标事件的图片透明效果【附demo源码下载】
2016/06/16 Javascript
AngularJS 指令的交互详解及实例代码
2016/09/14 Javascript
jQuery中过滤器的基本用法示例
2017/10/11 jQuery
JavaScript私有变量实例详解
2019/01/24 Javascript
详解Vue-cli3 项目在安卓低版本系统和IE上白屏问题解决
2019/04/14 Javascript
ES6知识点整理之函数对象参数默认值及其解构应用示例
2019/04/17 Javascript
VUE 动态组件的应用案例分析
2019/12/02 Javascript
Vue组件为什么data必须是一个函数
2020/06/11 Javascript
给你选择Python语言实现机器学习算法的三大理由
2017/11/15 Python
Python编程argparse入门浅析
2018/02/07 Python
TensorFlow神经网络优化策略学习
2018/03/09 Python
python3对接mysql数据库实例详解
2019/04/30 Python
python3下pygame如何实现显示中文
2020/01/11 Python
numpy的Fancy Indexing和array比较详解
2020/06/11 Python
keras的load_model实现加载含有参数的自定义模型
2020/06/22 Python
css3实现书本翻页效果的示例代码
2021/03/08 HTML / CSS
浅谈基于HTML5的在线视频播放方案
2016/02/18 HTML / CSS
上班时间打瞌睡检讨书
2014/09/26 职场文书
大连导游词
2015/02/12 职场文书
2016学习医德医风心得体会
2016/01/25 职场文书
2019求职信大礼包
2019/05/15 职场文书
MYSQL主从数据库同步备份配置的方法
2021/05/26 MySQL
教你漂亮打印Pandas DataFrames和Series
2021/05/29 Python