解决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 相关文章推荐
namespace.js Javascript的命名空间库
Oct 11 Javascript
jQuery EasyUI Dialog拖不下来如何解决
Sep 28 Javascript
有关json_decode乱码及NULL的问题
Oct 13 Javascript
JavaScript SHA512加密算法详细代码
Oct 06 Javascript
Js自动截取字符串长度,添加省略号(……)的实现方法
Mar 06 Javascript
bootstrap fileinput组件整合Springmvc上传图片到本地磁盘
May 11 Javascript
vue实现移动端图片裁剪上传功能
Aug 18 Javascript
webpack本地开发环境无法用IP访问的解决方法
Mar 20 Javascript
vue 集成 vis-network 实现网络拓扑图的方法
Aug 07 Javascript
微信小程序实现滑动翻页效果(完整代码)
Dec 06 Javascript
基于ant design日期控件使用_仅月份的操作
Oct 27 Javascript
js实现简易ATM功能
Oct 27 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的ob_start() 控制您的浏览器cache
2009/08/03 PHP
CI框架入门示例之数据库取数据完整实现方法
2014/11/05 PHP
php身份证号码检查类实例
2015/06/18 PHP
php实现搜索类封装示例
2016/03/31 PHP
用js实现计算代码行数的简单方法附代码
2007/08/13 Javascript
HTML DOM的nodeType值介绍
2011/03/31 Javascript
Javascript实现DIV滚动自动滚动到底部的代码
2012/03/01 Javascript
js操作textarea 常用方法总结
2012/12/03 Javascript
javascript检测对象中是否存在某个属性判断方法小结
2013/05/19 Javascript
使用javascript创建快捷方式的简单实例
2013/08/09 Javascript
JS操作数据库的实例代码
2013/10/17 Javascript
使用Nodejs开发微信公众号后台服务实例
2014/09/03 NodeJs
JS在可编辑的div中的光标位置插入内容的方法
2014/11/20 Javascript
Javascript调用函数方法的几种方式介绍
2015/03/20 Javascript
返回函数的JavaScript函数
2016/06/14 Javascript
浅谈时钟的生成(js手写简洁代码)
2016/08/20 Javascript
将html页面保存成图片,图片写入pdf的实现方法(推荐)
2016/09/17 Javascript
深入理解Node.js 事件循环和回调函数
2016/11/02 Javascript
基于JS实现仿百度百家主页的轮播图效果
2017/03/06 Javascript
Vue.js鼠标悬浮更换图片功能
2017/05/17 Javascript
vue 中的keep-alive实例代码
2018/07/20 Javascript
微信小程序内拖动图片实现移动、放大、旋转的方法
2018/09/04 Javascript
Python 命令行非阻塞输入的小例子
2013/09/27 Python
在Python中使用dict和set方法的教程
2015/04/27 Python
浅析Python装饰器以及装饰器模式
2018/05/28 Python
python基础梳理(一)(推荐)
2019/04/06 Python
python elasticsearch环境搭建详解
2019/09/02 Python
英国婴儿和儿童服装网站:Vertbaudet
2018/04/02 全球购物
Nordgreen英国官网:斯堪的纳维亚设计师手表
2018/10/24 全球购物
个人生活学习自我评价范文
2013/11/26 职场文书
商务英语应届生自我鉴定
2013/12/08 职场文书
装修协议书范本
2014/04/21 职场文书
管理提升方案
2014/06/04 职场文书
六一儿童节活动总结
2014/08/27 职场文书
求职自我推荐信
2015/03/24 职场文书
楚门的世界观后感
2015/06/03 职场文书