解决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 相关文章推荐
javascript 字符 Escape,encodeURI,encodeURIComponent
Jul 09 Javascript
关于hashchangebroker和statehashable的补充文档
Aug 08 Javascript
JS实现超简单的仿QQ折叠菜单效果
Sep 21 Javascript
jQuery解决IE6、7、8不能使用 JSON.stringify 函数的问题
May 31 Javascript
使用JS读取XML文件的方法
Nov 25 Javascript
Vue2.0基于vue-cli+webpack同级组件之间的通信教程(推荐)
Sep 14 Javascript
js中apply与call简单用法详解
Nov 06 Javascript
微信小程序 如何引入外部字体库iconfont的图标
Jan 31 Javascript
jQuery移动端跑马灯抽奖特效升级版(抽奖概率固定)实现方法
Jan 18 jQuery
浅谈JavaScript中你可能不知道URL构造函数的属性
Jul 13 Javascript
基于JavaScript实现大文件上传后端代码实例
Aug 18 Javascript
聊聊vue 中的v-on参数问题
Jan 29 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获取文件行数的方法
2015/06/10 PHP
浅谈PHP的数据库接口和技术
2016/12/09 PHP
Laravel学习教程之IOC容器的介绍与用例
2017/08/15 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
2020/02/21 PHP
jquery中this的使用说明
2010/09/06 Javascript
JavaScript调用后台的三种方法实例
2013/10/17 Javascript
利用jquery动画特效和css打造的侧边弹出垂直导航
2014/04/04 Javascript
JavaScript中的typeof操作符用法实例
2014/04/05 Javascript
js检测浏览器版本、核心、是否移动端示例
2014/04/24 Javascript
在JavaScript里防止事件函数高频触发和高频调用的方法
2014/09/06 Javascript
jquery图片播放浏览插件prettyPhoto使用详解
2014/12/19 Javascript
使用JavaScript实现旋转的彩圈特效
2015/06/23 Javascript
jquery实现图片上传之前预览的方法
2015/07/11 Javascript
浅谈Angular中ngModel的$render
2016/10/24 Javascript
AngularJS深入探讨scope,继承结构,事件系统和生命周期
2016/11/02 Javascript
用director.js实现前端路由使用实例
2017/01/27 Javascript
借助node实战JSONP跨域实例
2017/03/30 Javascript
vue.js实现带日期星期的数字时钟功能示例
2018/08/28 Javascript
Vue中android4.4不兼容问题的解决方法
2018/09/04 Javascript
React Native中Mobx的使用方法详解
2018/12/04 Javascript
vue中使用百度脑图kityminder-core二次开发的实现
2019/09/26 Javascript
vue使用一些外部插件及样式的配置代码
2019/11/18 Javascript
vue下canvas裁剪图片实例讲解
2020/04/16 Javascript
Vue中keep-alive的两种应用方式
2020/07/15 Javascript
[02:43]DOTA2英雄基础教程 德鲁伊
2014/01/13 DOTA
python中遍历文件的3个方法
2014/09/02 Python
Python语言实现机器学习的K-近邻算法
2015/06/11 Python
Python中pillow知识点学习
2018/04/30 Python
Keras 切换后端方式(Theano和TensorFlow)
2020/06/19 Python
Django中Q查询及Q()对象 F查询及F()对象用法
2020/07/09 Python
Python如何使用input函数获取输入
2020/08/06 Python
HTML5实现分享到微信好友朋友圈QQ好友QQ空间微博二维码功能
2018/01/03 HTML / CSS
耐克奥地利官网:Nike奥地利
2019/08/16 全球购物
经贸日语专业个人求职信
2013/12/13 职场文书
农民工工资承诺书大全
2015/05/04 职场文书
MySQL数据库超时设置配置的方法实例
2021/10/15 MySQL