当前位置:首页 > 日记 > 正文

Vue 滚动行为的具体使用方法

Vue 滚动行为的具体使用方法

滚动行为

使用前端路由,当切换到新路由时,想要页面滚到顶部,或者是保持原先的滚动位置,就像重新加载页面那样。 vue-router 能做到,而且更好,它让你可以自定义路由切换时页面如何滚动。

注意: 这个功能只在 HTML5 history 模式下可用。

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

const router = new VueRouter({routes: [...],scrollBehavior (to, from, savedPosition) { // return 期望滚动到哪个的位置}}) 

返回滚动位置的对象信息

{ x: number, y: number }{ selector: string } 

如果返回一个布尔假的值,或者是一个空对象,那么不会发生滚动。

<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> 

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

相关文章

AngularJS实现页面定时刷新

AngularJS实现页面定时刷新

定时刷新,页面,电脑软件,AngularJS,有时我们在前端可能会有这样的需求:1、每隔一段时间刷新一下页面中的数据2、根据需要可以暂停和启用刷新接下来我们就来看下AngularJS的实现方法: 首先我们了解到AngularJS中$interval可以用来处理间歇性处…

Excel表格字符的LEFT函数如何应用

Excel表格字符的LEFT函数如何应用

字符,函数,函数应用,表格,电脑软件,  在Excel中使用比较长的字符串时,可能会遇到需要提取其中某一部分字符串的情况,这时我们就要用到截取字符串函数了。以下是小编为您带来的关于Excel表格字符的LEFT函数应用,希望对您有所帮助。Excel表格…

excel自动计算总分的方法excel怎么

excel自动计算总分的方法excel怎么

计算,方法,总分,电脑软件,excel,  Excel中经常需要使用到自动计算总分的 功能,自动计算具体该如何操作呢?下面是由小编分享的excel自动计算总分的方法,以供大家阅读和学习。excel自动计算总分的方法自动计算总分步骤1:选中要计算的数据,不同…

bash 中用于grep的正则表达式

bash 中用于grep的正则表达式

正则表达式,用于,电脑软件,bash,grep,正则表达式是一类用于匹配文本的表达方式,常用于grep命令中表达检索条件。其实就是相当于你在用百度搜索时规定一些高级要求,例如你想找百度一个叫做詹姆斯的人的照片,你会发现出来一大堆骑士队的詹姆斯,这…

photoshop复制粘贴文字的方法步骤

photoshop复制粘贴文字的方法步骤

方法,文字,复制粘贴,指定位置,步骤,  复制粘贴图片的方法其实就和外面复制粘贴文字差不多,但是很多同学还不太清楚。为此小编整理的一些关于photoshop复制粘贴文字的方法,供您参阅。photoshop复制粘贴文字的方法如图,看怎么用快捷键复制图层…

powerpoint如何设页码数

powerpoint如何设页码数

方法,设置,页码,电脑软件,powerpoint,  在制作幻灯片的时候,怎么在其中设置页码呢?一份好的PPT不仅可以吸引观众的眼球同时还可以反映自己的制作能力,下面小编就为你介绍powerpoint如何设置页码的方法啦,不懂的朋友会请多多学习哦。powerpoi…

excel表格内单元格加宽的方法excel

excel表格内单元格加宽的方法excel

方法,单元格,表格,电脑软件,excel,  Excel中经常需要使用到单元格加宽的功能,表格内的单元格具体该如何加宽呢?下面是小编带来的关于excel表格内单元格加宽的方法,希望阅读过后对你有所启发!excel表格内单元格加宽的方法单元格加宽步骤1:这…

js实现移动端微信页面禁止字体放大

js实现移动端微信页面禁止字体放大

字体,移动端,页面,电脑软件,js,由于微信自带字体放大功能,因此基于微信的页面都可以通过微信进行字体放大,但是有些情况下这并不是我们想要的,因为很多移动端页面的开发都是使用rem作为单位的,当使用微信进行字体放大是,会导致页面的整体布局乱…

ps解析淘宝女士包包产品后期修图教

ps解析淘宝女士包包产品后期修图教

产品,教程,淘宝,包包,后期,美工必看:ps解析淘宝女士包包产品后期修图教程,只要六步,就可以完成一个淘宝女士包包的后期修图,非常不错,想要学习淘宝产品修图教程的朋友可以看看!教程结束,以上就是ps解析淘宝女士包包产品后期修图教程的全部内容,希望…

AI制作一个手提式磁带播放器矢量图

AI制作一个手提式磁带播放器矢量图

矢量图,教程,磁带,播放器,电脑软件,效果图:主要过程:12 3 阅读全文1 23 阅读全文教程结束,以上就是AI制作一个手提式磁带播放器矢量图教程的全部内容,希望大家喜欢!相关教程推荐:Illustrator(AI)模仿制作逼真的mediaplayer11媒体播放器图标实例…

Vue 2.0在IE11中打开项目页面空白

Vue 2.0在IE11中打开项目页面空白

项目,空白,页面,电脑软件,Vue,前言因为工作的需要,学习Vue2.0也有一段时间,最近在用Vue2.0的官方脚手架工具构建的项目,chrome中跑一直没有问题,但ie11打开出现了bug:问题ie11打开vue2.0项目空白,控制台报错 vuex requires a Promise polyfill i…

excel双击打不开怎么办excel双击打

excel双击打不开怎么办excel双击打

双击,解决方法,打不开,电脑软件,excel,  打开EXCEL文件时,无任何反应?此时你是否不知所措,不知道什么原因和怎么解决,下面小编告诉你几个excel双击打不开的解决方法,希望能帮到你。excel双击打不开的解决方法分析1:第一反应就是觉得系统有问…