Skip to content

Angular virtual dynamic measuring not working properly #843

Closed as not planned

Description

@JKupski

Describe the bug

I am having trouble getting a virtual scroll running properly. I have data that is very much dynamic within its size. There can be 1 or around 600000 entries that I want to display. Sadly I am having trouble getting something running properly. I forked the dynamic example from the docs.
When setting the entries to around 1000 the scroll works, but when increasing the amount of entries to 1000000 I can't scroll to the bottom and only see around 400000 entries. Playing around with the estimateSize property fixes the issue, but when scrolling the scroll behaviour is weird and jumps in big chunks.

Here is an example to show what I mean: https://stackblitz.com/edit/tanstack-virtual-pitwef?file=src%2Fapp%2Frow-virtualizer-dynamic.component.ts,src%2Fapp%2Fapp.routes.ts,src%2Fapp%2Fapp.component.ts,src%2Fapp%2Frow-virtualizer-dymaic-test.component.ts

Your minimal, reproducible example

https://stackblitz.com/edit/tanstack-virtual-pitwef?file=src%2Fapp%2Frow-virtualizer-dynamic.component.ts,src%2Fapp%2Fapp.routes.ts,src%2Fapp%2Fapp.component.ts,src%2Fapp%2Frow-virtualizer-dymaic-test.component.ts

Steps to reproduce

  1. Add a virtual-scroll container
  2. Set count to 9999 and estimateSize
  3. Change count to 999999 or more

Expected behavior

When the count of rows changes drastically, the virtual-scroll should be able to handle both cases without having to change the config programmatically.

How often does this bug happen?

Every time

Screenshots or Videos

No response

Platform

macOS- with Safari Browser and Chromium Browsers

tanstack-virtual version

v3.10.8

TypeScript version

Tested locally with 5.5.4 in stackblitz 5.2.2

Additional context

No response

Terms & Code of Conduct

  • I agree to follow this project's Code of Conduct
  • I understand that if my bug cannot be reliable reproduced in a debuggable environment, it will probably not be fixed and this issue may even be closed.

Activity

  1. changed the title [-]Angular virtual dynamic measuring not working right[/-] [+]Angular virtual dynamic measuring not working properly[/+] on Sep 26, 2024
  2. garrettld commented on Dec 24, 2024

    @garrettld
    Contributor

    Thanks for trying out Angular Virtual! The issue you're running into is a hard limit set by the browser. With 999999 items at 120px you're at a total of ~120M, which is well over Chrome's maximum of ~33M (the max differs by browser, version, etc.).

    Here's the height style and the actual height that I see on my machine on your StackBlitz reproduction:

    Image

    Also see #460 for discussion of a workaround. If it works, it would be nice to have a workaround implemented in TanStack Virtual core, but I think it would be possible to implement in userland as well.

  3. piecyk commented on Oct 14, 2026

    @piecyk
    Collaborator

    The total height (~1M rows × 120px) exceeds the browser's maximum element height (about 33.5M px in Chrome), so the list can't scroll past it. That's a browser limit, not the Angular adapter. Closing as a duplicate of #616, where #1172 proposes built-in scroll scaling.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions