详解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 相关文章推荐
使用js修改客户端注册表的方法
Aug 09 Javascript
jquery cookie实现的简单换肤功能适合小网站
Aug 25 Javascript
JS实现控制表格单元格垂直对齐的方法
Mar 30 Javascript
js中遍历Map对象的简单实例
Aug 08 Javascript
JS 全屏和退出全屏详解及实例代码
Nov 07 Javascript
JavaScript奇技淫巧44招【实用】
Dec 11 Javascript
AngularJS通过ng-route实现基本的路由功能实例详解
Dec 13 Javascript
node文件上传功能简易实现代码
Jun 16 Javascript
详解vue 配合vue-resource调用接口获取数据
Jun 22 Javascript
如何以Angular的姿势打开Font-Awesome详解
Apr 22 Javascript
如何在vue里添加好看的lottie动画
Aug 02 Javascript
vue quill editor 使用富文本添加上传音频功能
Jan 14 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.ini中的php-5.2.0配置指令详解
2008/03/27 PHP
Thinkphp模板中使用自定义函数的方法
2012/09/23 PHP
PHP中fwrite与file_put_contents性能测试代码
2013/08/02 PHP
ubuntu12.04使用c编写php扩展模块教程分享
2013/12/25 PHP
以实例全面讲解PHP中多进程编程的相关函数的使用
2015/08/18 PHP
php脚本运行时的超时机制详解
2016/02/17 PHP
PHP基于递归实现的约瑟夫环算法示例
2017/08/27 PHP
简单的前端js+ajax 购物车框架(入门篇)
2011/10/29 Javascript
『jQuery』名称冲突使用noConflict方法解决
2013/04/22 Javascript
如何使用jquery控制CSS样式,并且取消Css样式(如背景色,有实例)
2013/07/09 Javascript
jQuery针对各类元素操作基础教程
2014/08/29 Javascript
简单谈谈javascript中的变量、作用域和内存问题
2015/08/30 Javascript
快速学习AngularJs HTTP响应拦截器
2015/12/31 Javascript
Chrome不支持showModalDialog模态对话框和无法返回returnValue问题的解决方法
2016/10/30 Javascript
javascript判断元素存在和判断元素存在于实时的dom中的方法
2017/01/17 Javascript
select2 ajax 设置默认值,初始值的方法
2018/08/09 Javascript
Vue2.5学习笔记之如何在项目中使用和配置Vue
2018/09/26 Javascript
js实现的格式化数字和金额功能简单示例
2019/07/30 Javascript
对layui中的onevent 和event的使用详解
2019/09/06 Javascript
Vue 按照创建时间和当前时间显示操作(刚刚,几小时前,几天前)
2020/09/10 Javascript
python中mechanize库的简单使用示例
2014/01/10 Python
跟老齐学Python之深入变量和引用对象
2014/09/24 Python
Python中使用PDB库调试程序
2015/04/05 Python
python实现员工管理系统
2018/01/11 Python
Python查找最长不包含重复字符的子字符串算法示例
2019/02/13 Python
Python如何实现小程序 无限求和平均
2020/02/18 Python
葡萄牙航空官方网站:TAP Air Portugal
2019/10/31 全球购物
如何在存储过程中使用Loop
2016/01/05 面试题
如何写毕业求职自荐信
2013/11/06 职场文书
大三学生做职业规划:给未来找个方向
2014/02/24 职场文书
结婚喜宴主持词
2014/03/14 职场文书
美化环境标语
2014/06/20 职场文书
综合管理员岗位职责
2015/02/11 职场文书
公司仓管员岗位职责
2015/04/01 职场文书
《怀念母亲》教学反思
2016/02/19 职场文书
关于@OnetoMany关系映射的排序问题,使用注解@OrderBy
2021/12/06 Java/Android