Components: Virtual scroll has a scroll size limit

Created on 29 Jan 2019  路  4Comments  路  Source: angular/components

What is the expected behavior?

The scroll is next to unlimited in its length

What is the current behavior?

Scrolling reaches it's limit at 3.3553e7px

What are the steps to reproduce?

There should be 1 Million items 191739 are reachable
https://stackblitz.com/edit/angular-material2-issue-mlhd9q

Which versions of Angular, Material, OS, TypeScript, browsers are affected?

    "@angular/cdk": "7.0.2",
    "@angular/core": "7.0.1",

Google Chrome
Version 71.0.3578.98 (Official Build) (64-bit)

Is there anything else we should know?

It doesn't seem to be a browser limit. I have been able to create a larger scroll area than the limit above and also successfully used translateY() with a greater value.'


UPDATE:
I tried to debug it and found out the culprit is in the measureScrollOffset(): it starts to return wrong values at around 50.000.000px

https://github.com/angular/material2/blob/b51f14350200d1d0e9ad8c96485fd6dfe6e7a180/src/cdk/scrolling/scrollable.ts#L148

el.scrollTop returns a wrong value.

P5 cdscrolling

Most helpful comment

I wrote blog and implemented a solution to this issue: Read here

All 4 comments

I've marked this as P5 because I'm not sure if it is feasible due to the incorrect measurements the browser reports

I find it strange that the issue reproduces in any browser that I tested. Is this a known issue?

Yes, browsers have limits on the size of elements. It would be possible to work around those limits by stacking multiple elements, except that the limit also appears to apply to scrollHeight/scrollTop https://jsfiddle.net/malerba89/gbzwrcuv/

I wrote blog and implemented a solution to this issue: Read here

Was this page helpful?
0 / 5 - 0 ratings

Related issues

kara picture kara  路  3Comments

theunreal picture theunreal  路  3Comments

RoxKilly picture RoxKilly  路  3Comments

vitaly-t picture vitaly-t  路  3Comments

xtianus79 picture xtianus79  路  3Comments