详解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 相关文章推荐
jscript之Open an Excel Spreadsheet
Jun 13 Javascript
JS小功能(checkbox实现全选和全取消)实例代码
Nov 28 Javascript
JavaScript中的console.profile()函数详细介绍
Dec 29 Javascript
JavaScript 不支持 indexof 该如何解决
Mar 30 Javascript
JS功能代码集锦
May 04 Javascript
利用AngularJs实现京东首页轮播图效果
Sep 08 Javascript
移动端刮刮乐的实现方式(js+HTML5)
Mar 23 Javascript
Javascript中类式继承和原型式继承的实现方法和区别之处
Apr 25 Javascript
详解利用 Express 托管静态文件的方法
Sep 18 Javascript
浅谈在vue中用webpack打包之后运行文件的问题以及相关配置方法
Feb 21 Javascript
webpack项目轻松混用css module的方法
Jun 12 Javascript
解决vue select当前value没有更新到vue对象属性的问题
Aug 30 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
经典的PHPer为什么被认为是草根?
2007/04/02 PHP
编译php 5.2.14+fpm+memcached(具体操作详解)
2013/06/18 PHP
ThinkPHP3.1新特性之多数据库操作更加完善
2014/06/19 PHP
浅析PHP中call user func()函数及如何使用call user func调用自定义函数
2015/11/05 PHP
php+html5+ajax实现上传图片的方法
2016/05/14 PHP
Javascript面向对象扩展库代码分享
2012/03/27 Javascript
JS动态添加option和删除option(附实例代码)
2013/04/01 Javascript
JS中的Replace方法使用经验分享
2015/05/20 Javascript
jQuery实现大转盘抽奖活动仿QQ音乐代码分享
2015/08/21 Javascript
详解JS正则replace的使用方法
2016/03/06 Javascript
jQuery动态增减行的实例代码解析(推荐)
2016/12/05 Javascript
jQuery实现简易的输入框字数计数功能示例
2017/01/16 Javascript
vue bootstrap小例子一枚
2017/06/09 Javascript
vue 界面刷新数据被清除 localStorage的使用详解
2018/09/16 Javascript
解决vue下载后台传过来的乱码流的问题
2020/12/05 Vue.js
[01:14:12]2018DOTA2亚洲邀请赛4.7 总决赛 LGD vs Mineski 第二场
2018/04/09 DOTA
python重试装饰器示例
2014/02/11 Python
Python三元运算实现方法
2015/01/12 Python
详细解读Python中的__init__()方法
2015/05/02 Python
python如何使用正则表达式的前向、后向搜索及前向搜索否定模式详解
2017/11/08 Python
django的ORM模型的实现原理
2019/03/04 Python
Python3中_(下划线)和__(双下划线)的用途和区别
2019/04/26 Python
python 输出列表元素实例(以空格/逗号为分隔符)
2019/12/25 Python
Python异常处理机制结构实例解析
2020/07/23 Python
英国最大的宠物食品和宠物用品网上零售商: Zooplus
2016/08/01 全球购物
机电一体化毕业生求职信
2013/11/02 职场文书
医院护士的求职信范文
2013/12/26 职场文书
幼儿园运动会入场词
2014/02/10 职场文书
优秀公益广告词大全
2014/03/19 职场文书
教师节倡议书
2014/08/30 职场文书
个人投资合作协议书
2014/10/12 职场文书
2014年信贷员工作总结
2014/11/18 职场文书
公司感谢信范文
2015/01/22 职场文书
对公司的意见和建议
2015/06/04 职场文书
php TP5框架生成二维码链接
2021/04/01 PHP
pytorch 如何把图像数据集进行划分成train,test和val
2021/05/31 Python