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;但不同的研究会采用不同的处理策略。本研究…

React中的事件绑定的四种方式

1.在构造函数中绑定事件 constructor(props) {super(props);this.handleClick this.handleClick.bind(this);}2.在调用时显式绑定 <button onClick{this.handleClick.bind(this)}>Click me</button>3.使用箭头函数 handleClick () > {console.log(Button cli…

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…

SpringCloud微服务框架的原理及应用详解(九)

本系列文章简介&#xff1a; 随着云计算、大数据和物联网等技术的飞速发展&#xff0c;企业应用系统的规模和复杂度不断增加&#xff0c;传统的单体架构已经难以满足快速迭代、高并发、高可用性等现代业务需求。在这样的背景下&#xff0c;微服务架构应运而生&#xff0c;成为了…

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

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

云网络与云计算:有什么区别?

云计算和云网络是相关但又不同的概念。云计算关注的是应用程序如何运行&#xff0c;而云网络则关注的是应用程序之间的连接如何管理和交付。 云计算 云计算将企业工作负载托管从传统的内部或共置数据中心转移到云服务提供商 ( CSP ) 的数据中心。 云计算提供了三种基本模式&…

智慧公共卫生间系统:科技赋能城市新生活

智慧公共卫生间系统&#xff1a;科技赋能城市新生活 随着城市化进程加速和人们生活水平的提高&#xff0c;公共卫生设施的现代化成为提升城市形象和居民生活质量的重要一环。智慧公共卫生间系统作为其中的重要组成部分&#xff0c;通过引入先进的科技和智能化设备&#xff0c;…

Python中的多继承:深入理解、问题与挑战

Python中的多继承&#xff1a;深入理解、问题与挑战 引言 在面向对象编程中&#xff0c;继承是一个核心概念&#xff0c;它允许我们定义一个类&#xff08;称为子类或派生类&#xff09;来继承另一个类&#xff08;称为父类或基类&#xff09;的属性和方法。Python支持多继承…

隐藏html5中video标签的控件

1、 隐藏视频控件&#xff1a; 使用video::-webkit-media-controls、video::-moz-media-controls、video::-ms-media-controls等CSS选择器来隐藏不同浏览器上的默认控件。video::part(media-controls)用于覆盖未来的标准&#xff0c;确保最大兼容性。 /* 隐藏所有默认控件 */…

DAY13-力扣刷题

1.组合 77. 组合 - 力扣&#xff08;LeetCode&#xff09; 方法一&#xff1a;递归实现组合型枚举 class Solution {List<Integer> temp new ArrayList<Integer>();List<List<Integer>> ans new ArrayList<List<Integer>>();public L…

【办公类-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…