当前位置: 首页 > news >正文

通过css3的锚定滚动属性,实现分页加载时让滚动条不闪动

html标签

<div  @scroll="handleScroll" id="list-container"style="overflow-anchor:auto;overflow-y: auto;height: 80vh"><ul id="talks"v-for="(item,index) in msgList":key="item.roleid+item.time+item.content"><li ><div><span class="message-data-time"> {{item.rolename}}{{item.roleid}}{{ '&nbsp;&nbsp;' }}{{ item.time | formatTime }}</span></div><div><span>{{item.content}}</span></div></li></ul>
</div>

Vue生命周期中的mounted挂载,监听滚动事件

mounted() {// 给div标签添加监听滚动事件window.addEventListener('scroll', this.handleScroll);const listContainer = document.getElementById('list-container');listContainer.scrollTo(0, 1)
},

步骤

使用的是vue2框架

  1. 在v-for中,需要给遍历的列表的:key绑定跟列表存储数据相关的唯一值,注意不能使用index进行绑定,否则当列表最前面有新数组拼接在前面时,vue会直接替换列表中的元素,并且认为列表绑定的元素位置一直没有变动。因此需要绑定列表中元素特有的唯一值为key,最好key不要有重复或者中文,否则会报错,如案例中的:key="item.roleid+item.time+item.content"

  2. 同时给div标签添加固定高度以出现滚动条,如案例中的80vh

  3. 添加stytle,style="overflow-anchor:auto;overflow-y: auto;height: 80vh"

  4. 注意,如果在首次进入页面时,vue会认为我们并没有进行滚动,因此不会绑定唯一值,此时我们可以手动设置scrollTop为1,让vue的v-for绑定列表元素,如案例中mounted(),页面一挂载就让div的滚动条滚动到位置1,同时如果当滚动条处于位置0时,我们需要手动把滚动条位置设置为1,这样才能触发锚定滚动,eg:

                handleScroll(e) {// 滚动位置const scrollTop = e.srcElement.scrollTop;// 判断是否滚动到页面顶部if (scrollTop === 0) {const listContainer = document.getElementById('list-container');listContainer.scrollTo(0, 1)}},
    
http://www.lryc.cn/news/261349.html

相关文章:

  • 使用Selenium与Scrapy处理动态加载网页内容的解决方法
  • Linux的权限(二)
  • 网络服务IP属地发生变化的原因有哪些?
  • OpenGL 着色器程序的保存和加载(二进制)
  • 【Unity 实用工具篇】| 游戏多语言解决方案,官方插件Localization 实现本地化及多种语言切换
  • 疯狂SQL转换系列- SQL for Tencent Cloud VectorDB
  • Excel中的INDIRECT函数用法
  • Spring-temp
  • 【C++干货铺】会搜索的二叉树(BSTree)
  • 【Spring AOP】 动态代理
  • NAT——网络地址转换
  • Lambda 表达式的常见用法
  • 成本管理常用的ChatGPT通用提示词模板
  • 如何在PHP中处理日期和时间?
  • NO-IOT翻频,什么是翻频,电信为什么翻频
  • 云原生之深入解析OOM和CPU节流
  • 数据结构与算法之递归: LeetCode 93. 复原 IP 地址 (Typescript版)
  • json模块与jsonpath详解
  • ubuntu20.04在noetic下编译orbslam2
  • 64. 最小路径和
  • 惰性加载函数(js的问题)
  • jmeter,读取CSV文件数据的循环控制
  • 移植LVGL到像素屏,从此玩转像素屏0门槛
  • stateflow 之图函数、simulink函数和matlab函数使用及案例分析
  • C# 加载本地文件设置应用程序图标
  • 苹果计划将全球1/4的IPhone产能转移至印度
  • el-date-picker 选择一个或多个日期
  • 5个创建在线帮助文档的好方法!
  • 听GPT 讲Rust源代码--src/tools(14)
  • arcgis api for js 中使用API的代理页面(跨越配置)