详解10分钟学会vue滚动行为


Posted in Javascript onSeptember 21, 2017

滚动行为

什么是路由的滚动行为

当切换到新路由时,想要页面滚到顶部,或者是保持原先的滚动位置,就像重新加载页面那样

注意: 这个功能只在 HTML5 history 模式下可用。在这个模式下我们需要启动一个服务

我们用scrollBehavior 方法来做路由滚动

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

下面我们做一个小案例来了解一下

效果

详解10分钟学会vue滚动行为

<div id="app">
  <h1>滚动行为</h1>
  <ul>
    <li><router-link to="/">首页</router-link></li>
    <li><router-link to="/foo">导航</router-link></li>
    <li><router-link to="/bar">关于</router-link></li>
    <li><router-link to="/bar#an1">红色页面</router-link></li>
    <li><router-link to="/bar#an2">蓝色页面</router-link></li>
  </ul>
  <router-view></router-view>
</div>
<script>
  var Home = {
    template:"<div>home</div>"
  }
  var Foo = {
    template:"<div>foo</div>"
  }
  var Bar = {
    template:
      `
        <div>
          bar
          <div style="height:500px;background: yellow;"></div>
          <p id="an1" style="height:500px;background: red;">红色页面</p>
          <p id="an2" style="height:300px;background: blue;">蓝色页面</p>
        </div>
      `
  }

  var router = new VueRouter({
    mode:"history",
    //控制滚动位置
    scrollBehavior (to, from, savedPosition) {
      //判断如果滚动条的位置存在直接返回到当前位置,否者返回到起点
      if (savedPosition) {
        return savedPosition
      } else {
        if (to.hash) {
          return {selector: to.hash}
        }
      }
    },
    routes:[
      {
        path:"/",component:Home
      },
      {
        path:"/foo",component:Foo
      },
      {
        path:"/bar",component:Bar
      }
    ]
  });
  var vm = new Vue({
    el:"#app",
    router
  });
</script>

vue滚动小案例

https://besmall.github.io/vue-gundong/

https://github.com/Besmall/vue-gundong

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

Javascript 相关文章推荐
Dom加载让图片加载完再执行的脚本代码
May 15 Javascript
js constructor的实际作用分析
Nov 15 Javascript
游览器中javascript的执行过程(图文)
May 20 Javascript
js中实现多态采用和继承类似的方法
Aug 22 Javascript
JavaScript代码实现禁止右键、禁选择、禁粘贴、禁shift、禁ctrl、禁alt
Nov 17 Javascript
JS控制按钮10秒钟后可用的方法
Dec 22 Javascript
JQuery实现网页右侧随动广告特效
Jan 17 Javascript
深入理解JS实现快速排序和去重
Oct 17 Javascript
基于Three.js插件制作360度全景图
Nov 29 Javascript
layer弹窗插件操作方法详解
May 19 Javascript
Angular4学习笔记router的简单使用
Mar 30 Javascript
vue动态改变背景图片demo分享
Sep 13 Javascript
使用jQuery实现两个div中按钮互换位置的实例代码
Sep 21 #jQuery
JavaScript实现简单生成随机颜色的方法
Sep 21 #Javascript
JavaScript实现单击网页任意位置打开新窗口与关闭窗口的方法
Sep 21 #Javascript
shiro授权的实现原理
Sep 21 #Javascript
AngularJS 的$timeout服务示例代码
Sep 21 #Javascript
JS路由跳转的简单实现代码
Sep 21 #Javascript
JS实现的简单标签点击切换功能示例
Sep 21 #Javascript
You might like
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
PHP实现基于PDO扩展连接PostgreSQL对象关系数据库示例
2018/03/31 PHP
利用cookie记住背景颜色示例代码
2013/11/04 Javascript
浅析JavaScript中的隐式类型转换
2013/12/05 Javascript
Jquery实现由下向上展开效果的例子
2014/12/08 Javascript
node.js中的console.trace方法使用说明
2014/12/09 Javascript
jQuery实现自定义下拉列表
2015/01/05 Javascript
AngularJS 实现按需异步加载实例代码
2015/10/18 Javascript
js生成随机数(指定范围)的实例代码
2016/07/10 Javascript
js转html实体的方法
2016/09/27 Javascript
微信小程序 本地存储及登录页面处理实例详解
2017/01/11 Javascript
swiper移动端轮播插件(触碰图片之后停止轮播)
2017/12/28 Javascript
React-router4路由监听的实现
2018/08/07 Javascript
详解微信小程序开发用户授权登陆
2019/04/24 Javascript
用 js 写一个 js 解释器过程详解
2019/08/02 Javascript
mpvue微信小程序开发之实现一个弹幕评论
2019/11/24 Javascript
SpringBoot+Vue开发之Login校验规则、实现登录和重置事件
2020/10/19 Javascript
python字符串连接方式汇总
2014/08/21 Python
python在指定目录下查找gif文件的方法
2015/05/04 Python
python检查序列seq是否含有aset中项的方法
2015/06/30 Python
Python实现的自定义多线程多进程类示例
2018/03/23 Python
Python实现获取邮箱内容并解析的方法示例
2018/06/16 Python
Python实战之制作天气查询软件
2019/05/14 Python
Python操作Mongodb数据库的方法小结
2019/09/10 Python
关于Pytorch MaxUnpool2d中size操作方式
2020/01/03 Python
Python基于gevent实现文件字符串查找器
2020/08/11 Python
Django实现随机图形验证码的示例
2020/10/15 Python
荷兰网上药店:Drogisterij.net
2019/09/03 全球购物
阿迪达斯印尼官方网站:adidas印尼
2020/02/10 全球购物
皮肤科医师岗位职责
2013/12/04 职场文书
前厅收银主管岗位职责
2014/02/04 职场文书
银行求职信怎么写
2014/05/26 职场文书
地球一小时宣传标语
2014/06/24 职场文书
考试保密承诺书
2014/08/30 职场文书
聘任证明怎么写
2015/03/02 职场文书
mysql数据库隔离级别详解
2022/06/16 MySQL