vue组件获取 scrollTop焦点 和设置scrollTop 来保存组件的数据和滚动位置

【Element-plus】如何让滚动条永远在最底部(支持在线演示) 在某些场景下,你可能希望滚动条保持在最底部,以确保用户始终看到最新的内容或信息。通过短短几行代码即可实现这个功能,文章内含实现思路以及支持在线演示。 阅读详情

我的项目中使用了vue和 vant 其中封装的组件有点多,先要的效果就是 缓存list数据并且下拉数据时候 当 点击item项目时候 按回退时候 滚轮还是在原来位置
其中 数据缓存不在这里说了使用的是
上代码

这是封装的组件内部是什么不重要 主要是ref=“articleListBox”

<template>
  <div class="article-list" ref="articleListBox">
    <van-pull-refresh v-model="refreshing" @refresh="onRefresh" :success-text="suText" success-duration="700">
      <van-list
        ref="list"
        v-model="loading"
        :finished="finished"
        :error.sync="error"
        error-text="请求失败,点击重新加载"
        finished-text="没有更多了"
        @load="onLoad"
      >
        <article-item v-for="(item,index) in list" :key="index" :article="item"/>
        <!--<van-cell v-for="(item,index) in list" :key="index" :title="item.title"/>-->
      </van-list>
    </van-pull-refresh>
  </div>
</template>

关键代码在 mounted 可以获取 监听scroll

mounted () {
  // 通过$refs获取dom元素
  this.box = this.$refs.articleListBox
  // 监听这个dom的scroll事件
  this.box.addEventListener('scroll', () => {
    console.log(' scroll ' + this.$refs.articleListBox.scrollTop)
    this.scTop = this.$refs.articleListBox.scrollTop
  }, false)
},

在离开页面时候会调用keep-alive钩子函数把数据保存到本地

   deactivated () {
      //当页面被缓存且离开这个页面时候触发 把查询的高度保存到本地
      setItem('scTop', this.scTop)
    },

必须在activated 中设置scrollTop 因为你的容器要有数据才可以设置scrollTop
(keepalive缓存了数据 当再次进入这样页面时候会走activated 构造函数)

activated () {
  /*
  * 把本地高度设置给 组件 必须在activated中设置 因为容器要先有数据(高度)才可以scrollTop
  * */
  this.$refs.articleListBox.scrollTop = getItem('scTop')
},

最后实现就是保存 list数据和滚动位置

vant list组件滚动保留滚动条位置 vant list组件滚动保留滚动条位置,需结合keepAlive使用 1、保存位置的前提是用的keepAlive组件来做缓存,app.vue代码 <template> <div id="app"> <keep-alive> <router-view v-if='$route.meta.keepAlive'/> </keep-alive> <router-view v-if='!$route.meta 阅读详情

相关推荐

缓存滚动位置:解决keep-alive组件缓存滚动位置失败问题

但是使用keep-alive缓存页面后,发现虽然页面缓存成功了,但是列表的滚动条又自动回到了最上方。怎样缓存滚动位置?这篇文章教会你。

技术圈 3803

Element Plus 实例详解(五)___Scrollbar 滚动条

Element Plus Scrollbar 滚动条,用于替换浏览器原生滚动条。主要内容有:Scrollbar 滚动条基础用法,横向滚动Scrollbar用法,Scrollbar滚动条最大高度与元素高度关系,手动滚动Scrollbar滚动条。1Element Plus 实例详解(一)__安装设置2Element Plus 实例详解(二)___Button 按钮3Element Plus 实例详解(三)___Date Picker 日期选择4Element Plus 实例详解(四)___Border 边框5。

逆境清醒的博客 1万+

vue页面滚动条分页加载数据

mounted() { //监听页面滚动事件 window.addEventListener("scroll", this.handleScroll); } //methods里面的方法 handleScroll() { //窗口滚要做的操作写这里 let sh = document.documentElement.scrollHeight || document.body.scrollHeight; // 滚动条高度 let st = document.d

weixin_41656025的博客 2696

vue3 el-table添加行后定位到表尾(scrollWrapper.setScrollTop)

一定要加.$refs后再获取scrollWrapper,这样才有setScrollTop方法;网上好多文章都是获取bodyWrapper来定位的,反正我是没找到scrollTop;

NB_YZL的博客 3012

Vue - 详细实现动态改变元素容器(非页面body)滚动条位置,在一个容器内设置滚动条,并通过 js 改变滚动条位置教程(设置指定子元素div的滚动条位置)

Vue-动态改变元素容器(非页面body)滚动条位置(设置指定子元素div的滚动条位置),解决Vue页面固定滚动位置,根据ref来获取元素or组件的滚动条位置,如何设置div滚动条的位置,怎么动态设置滚动器元素容器非页面滚动条的指定位置,vue动态改变指定元素滚动条的位置,vue页面使用keep-alive缓存后,点击进入详情页后返回时发现滚动条位置回到了顶部怎么办,Vue-页面缓存(keep-alive)后滚动条回到了顶部,不在原来的位置了(从详情页返回列表时发现滚动条位置回到了最顶部,并没

🏆 前端领域优质创作者 5278

Vue - 页面缓存(keep-alive)让容器滚动条回到原来的位置,保存用户浏览位置(从详情页返回列表时发现滚动条位置回到了最顶部,并没有停留在进入详情页之前)

Vue-页面缓存(keep-alive)让容器滚动条回到原来的位置,保存用户浏览位置(从详情页返回列表时发现滚动条位置回到了最顶部,并没有停留在进入详情页之前),实现从详情返回列表,保持原先的滚动位置,vue使用keep-alive还原滚动位置的问题,nuxt.js项目页面缓存(keep-alive-props)回到指定滚动位置(从详情页返回列表时发现滚动条位置回到了最顶部,并没有停留在进入详情页之前),vue项目中keep-alive的使用,从详情页返回列表时保存浏览位, vue实现返回记住滚动位置,

🏆 前端领域优质创作者 4552

element-plus 的el-scrollbar滚动条组件

el-scrollbar组件可以替换原生的滚动条,可以设置出现滚动条的高度,若无设置则根据容器自适应。通过使用 setScrollTop 与 setScrollLeft 方法,可以手动控制滚动条滚动。scroll 滚动条的滚动事件,会返回滚动条当前的位置。

lucky_ly的博客 1863

【python】geopandas库安装出现各种问题?可以看看这篇文章

geopandas的安装方法

jgsecurity的博客 3887

jQuery和JavaScript和vue让子盒子滚动到父盒子的指定位置,包括设置scrollTop到指定位置的值为rem

jQuery和JavaScript和vue让子盒子滚动到父盒子的指定位置,包括设置scrollTop到指定位置的值为rem

weixin_44784401的博客 4095

华为HCIP大数据备考实战:从题库精析到834分通关策略

本文详细介绍了华为HCIP大数据认证考试的备考策略,包括题库精析、重点章节突破和考场实战经验。作者以834分的高分通过考试,分享了官方教材的三遍阅读法、自建题库技巧以及各章节核心知识点,帮助考生高效备考并顺利通关。

weixin_29169899的博客 149

【HCIA学习记录】WLAN配置实验

HCIA-WLAN

寸先生的AI道路 3874

不使用keep-alive,记住列表的滚动位置(scrollTop的正确使用方式)

需求如图,首页日常任务模块—>日常任务列表(父组件)–>任务列表(子组件)–>详情页(孙组件)。 就是从首页进入功能列表页父组件,滚动一段距离点击自立项目进入到任务子组件,再滚动一段距离点击第一条带日期的那一项进入任务详情,然后返回时要返回到刚才滚动的位置,而不是从列表第一条开始。 项目使用的vue框架和vant组件,我按照vue官方文档里介绍说把<router-view>用<keep-alive>包裹起来就可以实现,各组件内也定义了name属性,然而并没有卵用,.

chenlim87的博客 1422

STM32 超声波模块输入捕获测距(标准库)

通道2设置为下降沿触发,触发瞬间会将CNT的记录到CCR2中,由于上升沿触发时已经将CNT置零所以此时的CNT的值就是高电平的持续时间。通道1设置为上升沿触发,触发的瞬间会将CNT的值记录到CCR1里面,同时设置通道1触发带有从模式,并把从模式设置为置零CNT。超声波传感器模块上面通常有两个超声波元器件,一个用于发射,一个用于接收。电路板上有四个引脚:VCC、GND、Trig(触发)、Echo(回应)。输入捕获原理可以看看这位大佬,感觉写的很清楚,工作电压与电流:5V,15mA。感测角度:不小于15度。

qq_62425900的博客 2082

vue 记录滚动位置_Vue 返回记住滚动条位置详解

最近用 Vue 做移动端页面遇到一个问题,从列表页进入详情页,再返回到列表页,不管之前滚动到哪里,每次返回时都跳到列表最顶部。这样体验肯定不好,期望的应该是记住滚动条的位置,每次返回还是在原来的位置上,便于继续浏览。于是在网上搜解决方法,搜了一大圈看了 n 篇文章,都没有说清楚。起码我是没有通过看一篇文章而完美解决,所以决定写一篇详细的亲测可行的解决方案。一共分三步:给 router-view 添...

weixin_39639049的博客 3034

实战分享:如何用Java调用Doris FE接口实现高效Stream Load数据导入(附完整代码)

本文详细介绍了如何通过Java调用Doris FE接口实现高效的Stream Load数据导入,包含完整代码示例和性能优化技巧。Stream Load作为Doris的高效数据导入方式,相比传统JDBC提升5-10倍速度,适用于大规模数据处理场景,帮助开发者解决高吞吐量数据导入挑战。

weixin_29304985的博客 418

扩展卡尔曼滤波 (EKF, Extended Kalman Filter) 算法详解及案例分析

扩展卡尔曼滤波是一种用于估计非线性动态系统状态的递归算法。其目标是通过结合非线性系统模型和观测数据,估计系统的最优状态。

闲人编程的博客 2385

监听盒子滚动条位置(原生、Vue2、Vue3)

首先,确保你已经在项目中引入了Vue 3,并创建了一个Vue实例。要在Vue 2中使用并获取盒子的滚动条位置,你可以使用Vue的指令和实例属性。首先,确保你已经在项目中引入了Vue,并创建了一个Vue实例。请注意,要获取滚动条位置,盒子元素必须存在滚动条,并且已经发生了滚动。在Vue 3中,你可以使用Vue Composition API和。要获取盒子(元素)的滚动条位置,可以使用JavaScript的。就会在盒子发生滚动时自动更新,并保持与滚动条位置的同步。在上述示例中,我们在Vue实例中定义了。

weixin_62992614的博客 4430

钉钉多维表格开发

从0到1完成钉钉多维表格开发SDK对接与实践案例。

沉修所长,勇逐新机;安而不怠,静而思变 3612

vue动态渲染组件间切换,内容不刷新,记住滚动位置

@[TOC]keep alive 实现组件切换缓存页面,并记住当前的滚动位置 场景 home组件下动态渲染文章列表组件, <!-- 文章列表 --> <article-list ref="alist" :channel="channel"></article-list> 点击进入当前文章,返回至首页页面刷新 keep alive 官网介绍: 包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们。 要求同时只有一个子元素被渲染。 Router中配置me

zhouweiggaaa的博客 852

RAGFlow升级指南(纯小白都看得懂)

升级背景:RAGFlow项目原来的版本是0.17.0版本,在使用过程中,发现当知识库检索为空的时候并且使用到rerank模型的时候,就会输出错误的信息;为了解决这个版本问题,特意升级到最新的版本0.17.2(截止2025-3-14时最新版本就是0.17.2了)官方升级文档https://ragflow.io/docs/dev/upgrade_ragflow官方文档对小白还是不太友好,作者也是捣鼓了十多分钟,特出下面的升级指南前提:旧版本的RAGFlow项目是启动好了的1.在ragflow目录下执行(拉取最新

Ven%的博客 3596

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

vue js document.documentElement.scrollTop获取一直为0的解决方法

vue js document.documentElement.scrollTop获取一直为0的解决方法,vue封装组件后,常常是在组件里面继续轮滑,而document.documentElement.scrollTop拿到的是最外层浏览器的轮滑高度,所有一直是0。

daishaochen的博客 6505

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

vue 详情界面返回列表界面保留原来浏览位置

vue 详情界面返回列表界面保留原来浏览位置需求实现方法一、先缓存列表界面二、获取下拉列表的位置三,获取并设置scrollTop 需求 1.现有一个列表界面page1,列表详情界面page2。 2.先从列表界面page1进入到列表详情界面page2,然后从page2回到page1之后,列表界面page1的位置不刷新(即回到原来的浏览位置) 实现方法 一、先缓存列表界面 1.先在路由管理文件index.js中添加meta属性 { path: '/datadetail',

qq_42628798的博客 4252

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

移动端页面跳转记录滚动位置

在此之前,首先了解下 事件和 属性的使用:​ 描述:当元素的滚动条滚动时触发的时间。 onscroll 事件的定义与触发条件 ​ 事件可以被任何元素绑定,包括 、、。​ 默认初始情况下,只有 对象拥有 事件的定义与触发条件。这是因为 对象包含的页面默认是当页面高度过大时自动出现滚动条,即 对象自带 属性,同时它也具备固定的 高度,所以可以触发 事件。​ 也就是说,只有定义了 overflow: auto|scroll; 内容超过出现滚动条、且给定了 height 的元素本身,才能定义与触发

weixin_42995152的博客 1009

vue 中监听并设置scrollTop

vue 中监听并设置scrollTop 问题描述: 目前在做一个项目,父子组件以及兄弟组件中数据调用比较频繁。但是鉴于项目没那么大,就没有使用vuex。直接使用了this.$emit来给父级组件传递参数以及触发事件. 但是,由于业务需求, 我的项目当前子组件修改数据的同时是可以将父级组件中的数据同步修改的。然后,子组件再来获取到父组件传递过来数据。就导致了子组件数据在有滚动条的情况下,更新了最新的数据到父级组件之后。子组件的数据也再次刷新,从而引起我子组件页面的滚动条位置也刷新,scrollTop

HelloMy_sun的博客 4644

【vue】实现滚动条滚动到底部时发送请求获取数据

当后端给我们一个分页获取数据的接口时,我们前端可以通过设置分页按钮来获取到所有的数据,也可以通过判断滚动条位置,当滚动条滚动到底部时就发送请求获取下一页的数据,这样我们就可以不设置分页按钮也能获取到所有的数据。

叶子yes的博客 2791

Vue.js列表自动滚动实现:从scrollTop到requestAnimationFrame的平滑滚动方案

在前端开发中,实现流畅的列表自动滚动是提升数据展示体验的关键技术,常见于后台管理系统、数据大屏和实时信息流等应用场景。其核心原理是通过JavaScript动态控制滚动容器的scrollTop属性或利用CSS transform动画,以程序化方式驱动内容移动。从技术价值看,自动滚动不仅优化了用户被动接收信息的体验,还能有效引导视觉焦点,是前端交互设计的重要组成部分。在Vue.js生态中,开发者常结合其响应式特性,通过操作DOM、使用requestAnimationFrame优化性能,并处理无缝循环、用户交互暂

weixin_27945229的博客 344
上一篇: web查看当前是哪个元素触发了滚动
下一篇: android 缩放加载大图片
林焰龙
博客等级 码龄8年 2粉丝 14原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值