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 相关文章推荐
jquery 关于event.target使用的几点说明介绍
Apr 26 Javascript
js定时器(执行一次、重复执行)
Mar 07 Javascript
javascript数组详解
Oct 22 Javascript
javascript文本模板用法实例
Jul 31 Javascript
12个超实用的JQuery代码片段
Nov 02 Javascript
JS DOM实现鼠标滑动图片效果
Sep 17 Javascript
开启BootStrap学习之旅
May 04 Javascript
BootStrap 附加导航组件
Jul 22 Javascript
微信小程序-消息提示框实例
Nov 24 Javascript
ajax实现加载页面、删除、查看详细信息 bootstrap美化页面!
Mar 14 Javascript
JavaScript中EventLoop介绍
Jan 22 Javascript
jQuery实现遍历XML节点和属性的方法示例
Apr 29 jQuery
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
在CentOS上搭建LAMP+vsftpd环境的简单指南
2015/08/01 PHP
PHP环形链表实现方法示例
2017/09/15 PHP
php格式文件打开的四种方法
2018/02/24 PHP
Ubuntu 16.04中Laravel5.4升级到5.6的步骤
2018/12/07 PHP
Aptana调试javascript图解教程
2009/11/30 Javascript
javascript复制对象使用说明
2011/06/28 Javascript
关于jQuery中的end()使用方法
2011/07/10 Javascript
css配合jquery美化 select
2013/11/29 Javascript
jquery 获取 outerHtml 包含当前节点本身的代码
2014/10/30 Javascript
js选项卡的实现方法
2015/02/09 Javascript
javascript连续赋值问题
2015/07/08 Javascript
js中数组结合字符串实现查找(屏蔽广告判断url等)
2016/03/30 Javascript
Node.js测试中的Mock文件系统详解
2016/11/21 Javascript
在Debian(Raspberry Pi)树莓派上安装NodeJS的教程详解
2017/09/19 NodeJs
js基础之事件捕获与冒泡原理
2019/10/09 Javascript
JS通过识别id、value值对checkbox设置选中状态
2020/02/19 Javascript
Node.js API详解之 assert模块用法实例分析
2020/05/26 Javascript
[01:15:36]加油刀塔第二期网络版
2014/08/09 DOTA
[54:05]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第一场 1月9日
2021/03/11 DOTA
浅谈Python 的枚举 Enum
2017/06/12 Python
利用Python操作消息队列RabbitMQ的方法教程
2017/07/19 Python
Python 过滤错误log并导出的实例
2019/12/26 Python
python通过opencv实现图片裁剪原理解析
2020/01/19 Python
Selenium基于PIL实现拼接滚动截图
2020/04/10 Python
Python爬虫入门教程02之笔趣阁小说爬取
2021/01/24 Python
Python读写Excel表格的方法
2021/03/02 Python
美国现代家具和家居商店:Apt2B
2016/08/29 全球购物
世界上第一个创建了罩杯系统的美国内衣品牌:Maidenform
2019/03/23 全球购物
公司端午节活动方案
2014/02/04 职场文书
银行办公室岗位职责
2014/03/10 职场文书
班级文化建设标语
2014/06/23 职场文书
反腐倡廉标语
2014/06/24 职场文书
2015年法律事务部工作总结
2015/07/27 职场文书
银行柜员工作心得体会
2016/01/23 职场文书
2016年119消防宣传日活动总结
2016/04/05 职场文书
Python学习之时间包使用教程详解
2022/03/21 Python