详解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 SetInterval与setTimeout使用方法详解
Nov 15 Javascript
js常用数组操作方法简明总结
Jun 20 Javascript
javascript手工制作悬浮菜单
Feb 12 Javascript
jQuery插件实现控制网页元素动态居中显示
Mar 24 Javascript
onclick和onblur冲突问题的快速解决方法
Apr 28 Javascript
详解使用vue-router进行页面切换时滚动条位置与滚动监听事件
Mar 08 Javascript
基于JavaScript实现选项卡效果
Jul 21 Javascript
vue2.0s中eventBus实现兄弟组件通信的示例代码
Oct 25 Javascript
vue轮播图插件vue-concise-slider的使用
Mar 13 Javascript
微信小程序实现日期格式化和倒计时
Nov 01 Javascript
解决layui 表单元素radio不显示渲染的问题
Sep 04 Javascript
vue编写简单的购物车功能
Jan 08 Vue.js
使用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设计模式 php实现原型模式(prototype)
2015/12/07 PHP
joomla组件开发入门教程
2016/05/04 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
2018/06/16 PHP
location.search在客户端获取Url参数的方法
2010/06/08 Javascript
JS分割字符串并放入数组的函数
2011/07/04 Javascript
jQuery EasyUI API 中文文档 - Panel面板
2011/09/30 Javascript
JS动态调用方法名示例介绍
2013/12/18 Javascript
jQuery截取指定长度字符串代码
2014/08/21 Javascript
jQuery实现的仿select功能代码
2015/08/19 Javascript
js定义类的几种方法(推荐)
2016/06/08 Javascript
JavaScript鼠标事件,点击鼠标右键,弹出div的简单实例
2016/08/03 Javascript
让html元素随浏览器的大小自适应垂直居中的实现方法
2016/10/12 Javascript
使用Ajax生成的Excel文件并下载的实例
2016/11/21 Javascript
JS实现点击Radio动态更新table数据
2017/07/18 Javascript
Canvas放置反弹效果随机图形(实例)
2017/08/17 Javascript
JavaScript引用类型Function实例详解
2018/08/09 Javascript
react项目如何使用iconfont的方法步骤
2019/03/13 Javascript
微信小程序在ios下Echarts图表不能滑动的问题解决
2019/07/10 Javascript
Vue + Element UI图片上传控件使用详解
2019/08/20 Javascript
微信小程序tabBar设置实例解析
2019/11/14 Javascript
Vue实现小购物车功能
2020/12/21 Vue.js
python发送邮件示例(支持中文邮件标题)
2014/02/16 Python
Python设计模式之组合模式原理与用法实例分析
2019/01/11 Python
opencv python Canny边缘提取实现过程解析
2020/02/03 Python
django 外键创建注意事项说明
2020/05/20 Python
Melijoe英国官网:法国儿童时尚网站
2016/11/18 全球购物
马来西亚网上购物平台:ezbuy
2018/02/13 全球购物
《夏夜多美》教学反思
2014/02/17 职场文书
教师党员公开承诺书
2014/03/25 职场文书
出生公证书
2015/01/23 职场文书
餐饮食品安全责任书
2015/01/29 职场文书
浅谈Golang 嵌套 interface 的赋值问题
2021/04/29 Golang
浅谈Python numpy创建空数组的问题
2021/05/25 Python
Redis中key的过期删除策略和内存淘汰机制
2022/04/12 Redis
Python Matplotlib绘制等高线图与渐变色扇形图
2022/04/14 Python
Win11 22H2 2022怎么更新? 获得Win1122H22022版本升级技巧
2022/09/23 数码科技