uniapp如何实现虚拟列表上下滚动技术?
网友回复
我写了一个代码实现了uniapp的虚拟列表滚动加载,
代码说明:
totalItems:整个列表的数据,示例中用的是 1000 条数据。
visibleItemCount:设定在可视区域最多显示的条目数。
buffer:设定滚动缓冲区,这样可以在实际滚动时减少抖动。
visibleItems:计算当前需要显示的条目,截取 totalItems 的一部分。
topBlankHeight 和 bottomBlankHeight:计算上下两部分占位的空白高度
<template>
<view class="container">
<scroll-view
class="scroll-view"
scroll-y
@scroll="onScroll"
:scroll-top="scrollTop"
>
<!-- 占位的顶部空白区域 -->
<view :style="{ height: topBlankHeight + 'px' }"></view>
<!-- 实际显示的内容 -->
<view
v-for="(item, index) in visibleItems"
:key="item.id"
class="item"
>
{{ item.text }}
</view>
<!-- 占位的底部空白区域 -->
<view :style="{ height: bottomBlankHeight + 'px' }"></view>
</scroll-view>
</view>
</template>
<script>
export default {
data() {
return {
totalItems: [], // 原始数据
itemHeight: 60, // ...点击查看剩余70%


