详解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 相关文章推荐
JavaScript高级程序设计 读书笔记之十 本地对象Date日期
Feb 27 Javascript
jQuery实现类似滑动门切换效果的层切换
Sep 23 Javascript
js实现select跳转功能代码
Oct 22 Javascript
js实现div弹出层的方法
Nov 20 Javascript
jQuery异步获取json数据方法汇总
Dec 22 Javascript
项目中常用的JS方法整理
Jan 30 Javascript
JS非Alert实现网页右下角“未读信息”效果弹窗
Sep 26 Javascript
jquery动态切换背景图片的简单实现方法
May 14 Javascript
jquery.flot.js简单绘制折线图用法示例
Mar 13 Javascript
Material(包括Material Icon)在Angular2中的使用详解
Feb 11 Javascript
vue项目使用.env文件配置全局环境变量的方法
Oct 24 Javascript
解决vue elementUI中table里数字、字母、中文混合排序问题
Jan 07 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函数
2006/12/06 PHP
备份mysql数据库的php代码(一个表一个文件)
2010/05/28 PHP
destoon整合UCenter图文教程
2014/06/21 PHP
php实现按指定大小等比缩放生成上传图片缩略图的方法
2014/12/15 PHP
swoole和websocket简单聊天室开发
2017/11/18 PHP
跟我学习JScript的Bug与内存管理
2015/11/18 Javascript
JavaScript地理位置信息API
2016/06/11 Javascript
[原创]JavaScript语法高亮插件highlight.js用法详解【附highlight.js本站下载】
2016/11/01 Javascript
利用imgareaselect辅助后台实现图片上传裁剪
2017/03/02 Javascript
Vue.js 2.0中select级联下拉框实例
2017/03/06 Javascript
借助node实战JSONP跨域实例
2017/03/30 Javascript
jquery append与appendTo方法比较
2017/05/24 jQuery
Bootstrap Tree View简单而优雅的树结构组件实例解析
2017/06/15 Javascript
使用ajax的post同步执行(实现方法)
2017/12/21 Javascript
nodejs制作小爬虫功能示例
2020/02/24 NodeJs
js实现九宫格抽奖
2020/03/19 Javascript
小程序双头slider选择器的实现示例
2020/03/31 Javascript
小程序实现简单语音聊天的示例代码
2020/07/24 Javascript
Python的设计模式编程入门指南
2015/04/02 Python
详解Python中映射类型的内建函数和工厂函数
2015/08/19 Python
Python网站验证码识别
2016/01/25 Python
python爬取51job中hr的邮箱
2016/05/14 Python
Python基础之getpass模块详细介绍
2017/08/10 Python
Python实现的简单排列组合算法示例
2018/07/04 Python
Python模块的定义,模块的导入,__name__用法实例分析
2020/01/07 Python
Vans(范斯)新西兰官方网站:美国原创极限运动品牌
2020/09/19 全球购物
介绍一下JNDI的基本概念
2013/07/26 面试题
node中使用shell脚本的方法步骤
2021/03/23 Javascript
工程地质勘察专业大学生求职信
2013/10/13 职场文书
电子商务专业学生的自我鉴定
2013/11/28 职场文书
个人求职自荐信范文
2014/06/20 职场文书
企业优秀团员事迹材料
2014/08/20 职场文书
2015年党员承诺书
2015/01/21 职场文书
试用期转正工作总结2015
2015/05/28 职场文书
货款欠条范本
2015/07/03 职场文书
一篇合格的广告文案,其主要目的是什么?
2019/07/12 职场文书