From 11b67919c83514aa26e8f6ab136649dfb596f325 Mon Sep 17 00:00:00 2001 From: wvffle Date: Sun, 24 Jul 2022 22:27:41 +0000 Subject: [PATCH] Dynamically calculate number of track elements in DOM --- front/src/components/vui/list/VirtualList.vue | 3 +++ 1 file changed, 3 insertions(+) diff --git a/front/src/components/vui/list/VirtualList.vue b/front/src/components/vui/list/VirtualList.vue index f16ad058c..2d0bea3b9 100644 --- a/front/src/components/vui/list/VirtualList.vue +++ b/front/src/components/vui/list/VirtualList.vue @@ -137,6 +137,7 @@ watchEffect(() => { scrollDirection.value = undefined }) +const keeps = ref(30) const el = useCurrentElement() useResizeObserver(el as unknown as MaybeElementRef, ([entry]) => { const height = entry.borderBoxSize?.[0]?.blockSize ?? 0 @@ -144,6 +145,7 @@ useResizeObserver(el as unknown as MaybeElementRef, ([entry]) => { if (height !== 0) { containerSize.top = (entry.target as HTMLElement).offsetTop containerSize.bottom = height + containerSize.top + keeps.value = (containerSize.bottom - containerSize.top) / props.size * 2 | 0 } }) @@ -177,6 +179,7 @@ export default { class="virtual-list" wrap-class="drag-container" item-class="drag-item" + :keeps="keeps" :data-key="dataKey" :data-sources="list" :data-component="VirtualItem"