博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
VueRouter进阶四(滚动行为)
阅读量:6069 次
发布时间:2019-06-20

本文共 934 字,大约阅读时间需要 3 分钟。

滚动行为

使用前端路由,当切换到新路由时,想要页面滚到顶部,或者是保持原先的滚动位置,就像重新加载页面那样。 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    }  }}

演示地址 :

进阶一(导航钩子和路由元信息) :

进阶二(过渡动效) :

进阶三(数据获取) :

转载地址:http://qxfgx.baihongyu.com/

你可能感兴趣的文章
python 面向对象
查看>>
兼职议会
查看>>
2012.12.18
查看>>
rpm包管理和yum的使用
查看>>
Linux tmux
查看>>
在此处打开命令窗口问题
查看>>
中国红××××××C
查看>>
深度探索I/O完成端口
查看>>
年夏天针对中国市场推出廉价版的iPhone—iPhone Mini
查看>>
我的友情链接
查看>>
超详细PXE批量部署Linux
查看>>
Java爬虫实战(一):抓取一个网站上的全部链接
查看>>
交互组件微创新
查看>>
10本 Groovy/Grails 的书籍
查看>>
3.3 bash详解2
查看>>
【Android游戏开发之三】剖析 SurfaceView ! Callback以及SurfaceHolder!!
查看>>
No UserDatabase component found under key UserData
查看>>
二分查找算法
查看>>
PXE技术实现Linux系统自动化安装
查看>>
setter 和 getter 方法的作用
查看>>