vue 返回记住滚动条位置

vue 项目返回上一页,滚动到离开时的位置,网上能找到不少方法,以下尝试一种。

例如,首页有个列表,点击列表进入二级页面,返回的时候保持在原位置。首先在首页的视图外套上 keep-alive , include 表示只针对 name = ‘Home‘ 的组件进行缓存

<keep-alive include=‘Home‘>
  <router-view/>
</keep-alive>

然后,在首页的 Home 组件内,使用  beforeRouteLeave  ,组件内的路由导航守卫,路由离开前,获取滚动高度,并记录在 data 中,当再次进入首页,判断是否存在这个滚动高度,若存在,则设置高度,否则置为 0

data:{
    homeTop : 0,
},

activated(){
    // do something
    console.log(‘activated home‘)
    document.getElementById(‘app‘).scrollTop = this.homeTop || 0
},
beforeRouteLeave (to, from, next) {
    // console.log(‘leave‘)
    let app = document.getElementById(‘app‘)
    this.homeTop = app.scrollTop || 0
    next()
},

end

原文地址:https://www.cnblogs.com/_error/p/10118257.html

时间: 2024-11-09 10:00:40

vue 返回记住滚动条位置的相关文章

一个适用于单页应用,返回原始滚动条位置的demo

如题,最近做一个项目时,由于页面太长,跳转后在返回又回到初始位置,不利于用户体验,需要每次返回到用户离开该页面是的位置.由于是移动端项目,使用了移动端的套ui框架framework7,本身框架的机制是支持返回原始位置的,但是由于涉及到权限及安全等方面的问题,没有采用framework7的路由机制,所以这个就必须自己写了. 我的想法是给每个页面一个data-page属性用于保存这个页面的名字,然后每次在页面卸载即离开的时候获取滚动条的位置,然后将页面的名称做为属性名保存起来,让后将其push到一个

WebStorage记录滚动条位置

因关注公众号<HTML5学堂>看到这篇文章 "利用本地存储,记录滚动条的位置" ,便好奇敲来试试,然后又看了一些关于WebStorage的资料 附上这篇文章的地址 https://mp.weixin.qq.com/s/z34GRUZvDU2hCbH6Kc_ZDA 与大家共勉. 在网上搜了一些记录滚动条位置的文章,大多是用cookie来记录,下边我就自己看到的资料与大家分析cookie与webstorage的区别.   优点 缺点 应用场景 Cookie 简单易用 安全性差,

js获取页面窗口大小以及滚动条位置

function getPageScroll() {         var xScroll, yScroll;         if (self.pageYOffset) {             yScroll = self.pageYOffset;             xScroll = self.pageXOffset;         } else if (document.documentElement && document.documentElement.scroll

使用 Vue 开发 scrollbar 滚动条组件

Vue 应该说是很火的一款前端库了,和 React 一样的高热度,今天就来用它写一个轻量的滚动条组件: 知识储备:要开发滚动条组件,需要知道知识点是如何计算滚动条的大小和位置,还有一个问题是如何监听容器大小的改变,然后更新滚动条的位置: 先把样式贴出来: /*禁用选择文本*/ .disable-selection { -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-use

图片放大方法、、滚动条位置随滚轮移动固定方法、、&lt;a&gt;&lt;/a&gt;去外层虚线方法:a:focus { outline:none; -moz-outline:none;};

图片放大方法: <style type="text/css">.xt{ width:230px; height:230px;}.tp{ width:230px; height:230px; overflow:hidden;}.tp img{transition:all 1s ease-out 0s; margin-left:0px; margin-top:0px; perspective-origin:bottom;}</style> <body>

返回指定字符串位置的函数FIELD(S,S1,S2,...) 与 FIND_IN_SET(S1,S2) 函数

FIELD(S,S1,S2,...)  与 FIND_IN_SET(S,S1) 函数  ------> 这2个函数都是返回指定字符串在源串中的出现的位置(皆是第一次出现的位置),但2个函数的参数不一样,前者是以列表形式的参数,后者是整体为一个整串的参数.(上边S皆为指定串,前者S1和S2为串列表,后者S1为一个整串) FIELD(S,S1,S2,...) : 返回指定字符串位置的函数FIELD(S,S1,S2,...) FIELD(S,S1,S2,...)返回字符串s在列表s1,s2,.....

2014-07-25 设置Winform窗体滚动条位置

昨天那个小工具还差最后一步,就是那个图文并茂窗体. 拖几个GroupBox.Label.PictureBox控件,很快就做完了. 因为截图比较大,所以加了滚动条(设置 AutoScroll 属性为 True ). 但是发现一个问题,弹出这个窗体的时候,滚动条总是在最下边囧. 老程序员看了说:“这个没事儿,不用管”. 不过我看着总是感觉不爽,客户体验太差!而且最关键的是,我感觉这个应该很容易解决. 所以,我决定还是再改一下. 于是,我自信而又轻快地敲击键盘,写下了自以为可以轻松搞定这个问题的代码:

页面刷新滚动条位置不变

今天因为这个问题困扰了很久网上的例子都尝试没效果,后来发现一点原来是内容最外层没有div的原因 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SpotChkDetail.aspx.cs" Inherits="Topevery.DUM.Web.Observer.SpotChkDetail" %> 2 3 <script runat=&qu

iOS 调整导航栏返回按钮的位置

调整导航栏返回按钮的位置 //创建返回按钮 UIButton * leftBtn = [UIButton buttonWithType:UIButtonTypeSystem]; leftBtn.frame = CGRectMake(0, 0, 25,25); [leftBtn setBackgroundImage:[UIImage imageNamed:@"icon_back"] forState:UIControlStateNormal]; [leftBtn addTarget:se