diff --git a/.changeset/two-swans-heal.md b/.changeset/two-swans-heal.md new file mode 100644 index 00000000..02c1f9dc --- /dev/null +++ b/.changeset/two-swans-heal.md @@ -0,0 +1,5 @@ +--- +'@tanstack/virtual-core': patch +--- + +fix(virtual-core): preserve auto alignment for visible items when scrolling diff --git a/packages/virtual-core/src/index.ts b/packages/virtual-core/src/index.ts index efbf1e54..fb7bb5e6 100644 --- a/packages/virtual-core/src/index.ts +++ b/packages/virtual-core/src/index.ts @@ -1032,9 +1032,7 @@ export class Virtualizer< } else if (item.start <= scrollOffset + this.options.scrollPaddingStart) { align = 'start' } else { - // Item is already visible, return current position with concrete alignment - // to avoid infinite retry loop if measurements change - return [scrollOffset, 'start'] as const + return [scrollOffset, align] as const } }