vxe-list做列表虚拟滚动时,底部间距的优化

已知vxe-list在数据超出一定行时会自动启用纵向虚拟滚动配置,默认效果如图:

但是在滚动中我们发现有时列表底部间距不一致,而且会出现在感官上底部空白过多的情况:

这时候我们想让列表恰好显示完全应该怎么做呢,查看官网的api发现,在Methods属性中有一个scrollTo方法能手动控制列表的滚动距离,这样当列表滚动时判断如果不能恰好显示完全我们就手动控制偏移到恰好的距离:

具体代码如下:

<template><div><div class="my-select"><input type="text" class="my-select-input" /><vxe-list class="my-select-wrapper" :loading="loading" :data="list" height="200" :scroll-y="vScrollY" ref="vxeList" @scroll="scroll"><template v-slot="{ items }"><div class="my-select-option" v-for="item in items" :key="item.value">{{ item.label }}</div></template></vxe-list></div></div>
</template>
<script>
export default {data() {return {loading: false,list: [],vScrollY:{oSize:1},//除计算显示出的几行外,多渲染n行,滚动时多会显示2n行interval:null,itemHeight:24,//单行高度}},created() {this.loading = true;setTimeout(() => {const startTime = Date.now();var list = [];for (var i = 0; i < 1000; i++) {list.push({ label: "选项" + i, value: i });}this.list = list;this.loading = false;}, 200);},methods:{loadData(data){console.log('data',data)},clearScroll(){this.$refs.vxeList.clearScroll();},recalculate(){this.$refs.vxeList.recalculate();},scroll(e){if(this.interval){clearTimeout(this.interval);this.interval = setTimeout(()=>{this.interval = nullif(e.scrollTop%this.itemHeight!=0){let top = Math.floor(Number(e.scrollTop)/this.itemHeight)*this.itemHeight+this.itemHeight;console.log('top',top)this.$refs.vxeList.scrollTo(0,top);}},50)}else{this.interval = setTimeout(()=>{this.interval = nullif(e.scrollTop%this.itemHeight!=0){let top = Math.floor(Number(e.scrollTop)/this.itemHeight)*this.itemHeight+this.itemHeight;console.log('top',top)this.$refs.vxeList.scrollTo(0,top);}},50)}},scrollTo(){this.$refs.vxeList.scrollTo(0,500);}}
};
</script>
<style lang="less" scoped>
.my-select {width: 200px;position: relative;background-color: #fff;
}
.my-select-input {width: 100%;height: 24px;border: 1px solid #dcdfe6;
}
.my-select-wrapper {position: absolute;left: 0;top: 26px;width: 100%;height: 200px;background-color: #fff;border: 1px solid #dcdfe6;
}
.my-select-option:hover {background-color: #f5f7fa;cursor: pointer;
}
.my-select-option{line-height: 24px;
}
/deep/ .vxe-list--virtual-wrapper{height: 200px;
}
/deep/ .my-select-wrapper{overflow: hidden;
}
</style>

文章参考:vxe-list vue 如何实现下拉框的虚拟列表_vue.js_脚本之家

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/33687.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

重生奇迹MU 谁才是真正的全能职业

重生奇迹MU中&#xff0c;游戏的奥妙就在于职业的选择。不同职业间各有千秋&#xff0c;可远可近&#xff0c;全都是玩家们心中的全能职业。本文就将为你分析重生奇迹MU中的各个职业&#xff0c;为你解答谁才是真正的全能职业。 每次新开一个服务器时&#xff0c;玩家们总会纠结…

深入解析账户和会员系统的整体架构设计:从基础到高级实现

在现代应用程序和平台中&#xff0c;账户和会员系统是必不可少的核心组件。它不仅负责用户的注册和登录&#xff0c;还涉及权限管理、用户信息维护、安全性等多个方面。本文将详细解析账户和会员系统的整体架构&#xff0c;从基础概念到高级实现&#xff0c;帮助开发者全面理解…

分享HTML显示2D/3D粒子时钟

效果截图 实现代码 线上体验&#xff1a;three.jscannon.js Web 3D <!DOCTYPE html> <head> <title>three.jscannon.js Web 3D</title><meta charset"utf-8"><meta name"viewport" content"widthdevice-width,ini…

数据处理技术影响皮质-皮质间诱发电位的量化

摘要 皮质-皮质间诱发电位(CCEPs)是探究颅内人体电生理学中有效连接性的常用工具。与所有人体电生理学数据一样&#xff0c;CCEP数据极易受到噪声的影响。为了解决噪声问题&#xff0c;通常会对CCEP数据进行滤波和重参考&#xff0c;但不同的研究会采用不同的处理策略。本研究…

Kotlin 中的数据类型有隐式转换吗?

在 Kotlin 中&#xff0c;数据类型不可隐式转换。在 Java 中&#xff0c;如果数据是从小到大&#xff0c;是可以隐式转换的&#xff0c;数据类型将自动提升。 下面以 int 类型的数据为例&#xff0c;在 Java 中这样写是可以的&#xff1a; int a 2312; long b a;但是在 Kot…

【产品经理】订单处理10-分配快递策略

本次主要讲解下在订单处理过程中分配快递的策略以及分配快递中需要用到的设置。 一、建立快递档案 在ERP系统中&#xff0c;需要建立快递档案&#xff0c;设置所属快递、快递的服务类型、支持的打印模版以及快递在各个平台的电子面单支持情况。 二、仓库绑定快递 仓库需要设…

基于SpringBoot前后端分离在线骑行网站设计和实现(源码+LW+调试文档+讲解等)

&#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f31f;文末获取源码数据库&#x1f31f;感兴趣的可以先收藏起来&#xff0c;还…

Python学习笔记19:进阶篇(八)常见标准库使用之glob模块和argparse模块

前言 本文是根据python官方教程中标准库模块的介绍&#xff0c;自己查询资料并整理&#xff0c;编写代码示例做出的学习笔记。 根据模块知识&#xff0c;一次讲解单个或者多个模块的内容。 这里贴一下教程地址&#xff1a;https://docs.python.org/zh-cn/3/tutorial/stdlib.h…

应变计在工程中的角色:精准监测与安全保障的得力助手

在工程领域中&#xff0c;应变计作为一种重要的测量工具&#xff0c;扮演着精准监测与安全保障的得力助手的角色。它能够实时、准确地测量物体在受力作用下的变形情况&#xff0c;为工程师提供关键的数据支持&#xff0c;从而确保工程的稳定性与安全性。 应变计在工程中的应用范…

【办公类-51-01】月评估数字生成01-平均数空值

期末需要制作月评估&#xff0c;每月给孩子的能力水平打分。 以前我是做在EXCEL里&#xff0c;手动打分&#xff0c;然后用公式计算1、2、3出现的个数&#xff0c;然后计算平均数&#xff0c;最后复制到Word里。 因为是手动计算&#xff0c;每次都要算很长时间&#xff0c;确保…

基于 NXP LS1046 +FPGA系列 CPCI 架构轨道交通专用板卡

基于 NXP LS1046 系列 CPCI 架构轨道板卡 该产品是一款 CPCI 无风扇架构的高可靠性板卡&#xff0c;CPU 选用 NXP LS1046A 系统平台&#xff0c;支持嵌入式 Linux 或者标准 Ubuntu Linux 、凝思等操作系统&#xff0c;轨道交通 EMC 及宽温级别设计&#xff0c;板载多路 M12 高速…

蓝牙技术|苹果iOS 18的第三方配件将支持AirPods / AirTag的配对体验

苹果公司在 iOS 18 系统中引入了名为 AccessorySetupKit 的新 API&#xff0c;用户不需要进入蓝牙设置和按下按钮&#xff0c;系统就能识别附近的配件&#xff0c;并提示用户进行配对。首次向配件制造商开放这种配对体验。 iPhone 用户升级 iOS 18、iPad 用户升级到 iPadOS 1…

使用 MinIO S3 和 Tailscale VPN 部署应用程序基础设施

在现代 IT 运营中&#xff0c;面向 IT 运营的人工智能 &#xff08;AI-Ops&#xff09; 正在通过使用高级算法自动执行任务来改变数据管理。MinIO 和 Tailscale 共同为应用层开发提供了安全、可扩展和有效的基础设施。Tailscale 凭借其基于 WireGuard 的覆盖 VPN 网络&#xff…

【小白专用 已验证24.6.18】C# SqlSugar操作MySQL数据库实现增删改查

【小白专用24.6.18】C# SqlSugar&#xff1a;连接数据库实现简单的&#xff0c;增、删、改、查-CSDN博客 SqlSugar .Net ORM 5.X 官网 、文档、教程 - SqlSugar 5x - .NET果糖网 SqlSugar项目创建 通过NuGet包管理器搜索SqlSugar&#xff08;MySql还要安装MySql.Data、Newton…

Redis之商品缓存

文章目录 什么是缓存添加Redis缓存缓存更新策略缓存穿透缓存空对象布隆过滤器 缓存雪崩给不同的key的TTL添加随机值利用Redis集群提高服务的可用性给缓存业务添加降级限流策略给业务添加多级缓存 缓存击穿互斥锁逻辑过期 缓存工具封装方法1 写入redis方法2 设置逻辑过期方法3 解…

驱动开发(六):应用层通过文件系统与内核层交互

驱动开发相关文章: 驱动开发&#xff08;一&#xff09;&#xff1a;驱动代码的基本框架 驱动开发&#xff08;二&#xff09;&#xff1a;创建字符设备驱动 驱动开发&#xff08;三&#xff09;&#xff1a;内核层控制硬件层 驱动开发&#xff08;四&#xff09;&#xff…

借助TheGraph 查询ENS信息

关于ENS (以太坊域名服务) ENS 全称是 Ethereum Name Service,它是一个建立在以太坊区块链上的去中心化域名系统。 ENS 在 Web3 领域发挥着重要作用,主要有以下几个方面: 可读性更好的地址: ENS 允许用户将复杂的以太坊地址(如 0x12345…) 映射为更简单易记的域名。这极大地提…

中国车牌检测数据集VOC+YOLO格式2001张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;2001 标注数量(xml文件个数)&#xff1a;2001 标注数量(txt文件个数)&#xff1a;2001 标注…

【Linux进阶】UNIX体系结构分解——操作系统,内核,shell

1.什么是操作系统&#xff1f; 从严格意义上说&#xff0c;可将操作系统定义为一种软件&#xff0c;它控制计算机硬件资源&#xff0c;提供程序运行环境。我们通常将这种软件称为内核&#xff08;kerel)&#xff0c;因为它相对较小&#xff0c;而且位于环境的核心。 从广义上…

STM32介绍和资料地址

STM32标准外设软件库 https://www.st.com.cn/zh/embedded-software/stm32-standard-peripheral-libraries.html 支持标准外设库的产品系列&#xff1a;