Vue-Router进阶之滚动行为详解


Posted in Javascript onSeptember 13, 2017

滚动行为

使用前端路由,当切换到新路由时,想要页面滚到顶部,或者是保持原先的滚动位置,就像重新加载页面那样。 vue-router 能做到,而且更好,它让你可以自定义路由切换时页面如何滚动。

注意: 这个功能只在 HTML5 history 模式下可用。

当创建一个 Router 实例,你可以提供一个 scrollBehavior 方法:

var router = new VueRouter({
  routes: [...],
  scrollBehavior (to, from, savedPosition) {
    // return 期望滚动到哪个的位置
  }
})

scrollBehavior 方法接收 to 和 from 路由对象。第三个参数 savedPosition 当且仅当 popstate 导航 (通过浏览器的 前进/后退 按钮触发) 时才可用。

这个方法返回滚动位置的对象信息,长这样:

  • { x: number, y: number }
  • { selector: string }

如果返回一个布尔假的值,或者是一个空对象,那么不会发生滚动。

举例:

scrollBehavior (to, from, savedPosition) {
 return { x: 0, y: 0 }
}

对于所有路由导航,简单地让页面滚动到顶部。

返回 savedPosition,在按下 后退/前进 按钮时,就会像浏览器的原生表现那样:

scrollBehavior (to, from, savedPosition) {
 if (savedPosition) {
  return savedPosition
 } else {
  return { x: 0, y: 0 }
 }
}

如果你要模拟『滚动到锚点』的行为:

scrollBehavior (to, from, savedPosition) {
 if (to.hash) {
  return {
   selector: to.hash
  }
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascritp实现input输入框相关限制用法
Jun 29 Javascript
jquery jqPlot API 中文使用教程(非常强大的图表工具)
Aug 15 Javascript
文本框输入时 实现自动提示(像百度、google一样)
Apr 05 Javascript
jQuery中innerHeight()方法用法实例
Jan 19 Javascript
jQuery选择id属性带有点符号元素的方法
Mar 17 Javascript
JS根据生日算年龄的方法
May 05 Javascript
超详细的javascript数组方法汇总
Nov 21 Javascript
BootStrap与validator 使用笔记(JAVA SpringMVC实现)
Sep 21 Javascript
jquery+css3实现熊猫tv导航代码分享
Feb 12 jQuery
在vue项目中引入highcharts图表的方法(详解)
Mar 05 Javascript
Vue.js 2.x之组件的定义和注册图文详解
Jun 19 Javascript
vue+axios实现文件下载及vue中使用axios的实例
Sep 21 Javascript
Vue 滚动行为的具体使用方法
Sep 13 #Javascript
利用JS如何计算字符串所占字节数示例代码
Sep 13 #Javascript
VUE实现一个分页组件的示例
Sep 13 #Javascript
jquery 键盘事件的使用方法详解
Sep 13 #jQuery
详解angularJS+Ionic移动端图片上传的解决办法
Sep 13 #Javascript
JS解决IOS中拍照图片预览旋转90度BUG的问题
Sep 13 #Javascript
Js利用Canvas实现图片压缩功能
Sep 13 #Javascript
You might like
基于MySQL分区性能的详细介绍
2013/05/02 PHP
php出现web系统多域名登录失败的解决方法
2014/09/30 PHP
CI框架中site_url()和base_url()的区别
2015/01/07 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
THREE.JS入门教程(2)着色器-上
2013/01/24 Javascript
ext前台接收action传过来的json数据示例
2014/06/17 Javascript
javascript实现链接单选效果的方法
2015/05/13 Javascript
jquery 表单验证之通过 class验证表单不为空
2015/11/02 Javascript
基于JavaScript代码实现微信扫一扫下载APP
2015/12/30 Javascript
微信小程序实战之登录页面制作(5)
2020/03/30 Javascript
信息滚动效果的实例讲解
2017/09/18 Javascript
Vue resource三种请求格式和万能测试地址
2018/09/26 Javascript
JSON是什么?有哪些优点?JSON和XML的区别?
2019/04/29 Javascript
详解vue为什么要求组件模板只能有一个根元素
2019/07/22 Javascript
微信小程序下拉加载和上拉刷新两种实现方法详解
2019/09/05 Javascript
jQuery实现弹出层效果
2019/12/10 jQuery
VSCode搭建React Native环境
2020/05/07 Javascript
[08:08]2014DOTA2国际邀请赛中国区预选赛精彩TOPPLAY
2014/06/25 DOTA
[00:43]TI7不朽珍藏III——幽鬼不朽展示
2017/07/15 DOTA
[33:17]OG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python实现抓取HTML网页并以PDF文件形式保存的方法
2018/05/08 Python
python调用opencv实现猫脸检测功能
2019/01/15 Python
Python整数对象实现原理详解
2019/07/01 Python
python tkinter组件摆放方式详解
2019/09/16 Python
基于Python爬取51cto博客页面信息过程解析
2020/08/25 Python
Bally巴利中国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/10/09 全球购物
有机婴儿毛毯和衣服:Monica + Andy
2020/03/01 全球购物
英国100%防污和防水的靴子:Muck Boot Company
2020/09/08 全球购物
销售顾问的岗位职责
2013/11/13 职场文书
两年的个人工作自我评价
2014/01/10 职场文书
聚美优品广告词改编
2014/03/14 职场文书
学校安全责任书
2014/04/14 职场文书
525心理活动总结
2014/07/04 职场文书
老龙头导游词
2015/02/11 职场文书
导游词幽默开场白
2019/06/26 职场文书
python实现学员管理系统(面向对象版)
2022/06/05 Python