bug(virtual-scroll): scrollToIndex on viewport while inside cdkVirtualScrollingElement is wrong
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 64/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Ruhig
- Tech-Stack
- angular, typescript
- Bereich
- frontend
Rechercherichtung
Beginne mit der CDK-Implementierung des Viewports für virtuelles Scrollen und dem Einstiegspunkt scrollToIndex und vergleiche anschließend sein Verhalten mit measureViewportOffset('top') in der bereitgestellten StackBlitz-Reproduktion. Überprüfe die Änderung mit den Fällen regular viewport und cdkVirtualScrollingElement: Beim Scrollen zu Element 50 sollte in beiden Abschnitten Element 50 ausgewählt werden, auch mit dem 100px-Header-Offset.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Is this a regression?
- Yes, this behavior used to work in the previous version
The previous version in which this bug was not present was
No response
Description
When scrolling by index using scrollToIndex on the viewport it doesn't take into account any content around the viewport when using cdkVirtualScrollingElement.
The logic calculates the offset only based on the itemSize without taking into account the viewport offset.
Reproduction
StackBlitz link: https://stackblitz.com/edit/qmx1v9bc
Steps to reproduce:
- In the
Regularsection clicking on the buttonScroll to item 50correctly scrolls to item 50. This is a regular viewport withoutcdkVirtualScrollingElement. - In the
With cdkVirtualScrollingElementsection clicking on the buttonScroll to item 50 (not working)it scrolls to item 48 instead of 50 as there is a 100px header above the viewport while it should scroll to item 50. - If the button
Scroll to item 50 (fixed)is clicked the scrolling works as expected as I calculate the offset myself usingviewport.measureViewportOffset('top')which is missing inscrollToIndex.
Expected Behavior
It should scroll to the correct item when using cdkVirtualScrollingElement
Actual Behavior
It scrolls without taking into account the viewport offset.
Environment
- Angular: 21.2.6
- CDK/Material: 21.1.2
- Browser(s): Chrome 146
- Operating System (e.g. Windows, macOS, Ubuntu): Windows 11
- Vorherrschende Sprache
- TypeScript
- Sterne
- 25k
- Forks
- 6.8k
- Ø Merge
- 1 T. 7 Std.
- Gemergte PRs (30 T.)
- 92
Entwicklungsumgebung
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus angular/components
-
area: material/datepicker P4
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
angular/components#33763 · 2 Kommentare · 3 Reaktionen ·
Maintainer antworten meist innerhalb von 1 Tag
-
area: material/table P4
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
angular/components#33709 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
area: material/table docs gemini-triaged P4
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
angular/components#33455 ·
Maintainer antworten meist innerhalb von 1 Tag
-
area: material/core gemini-triaged P3
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 78/100
angular/components#33059 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
area: material/dialog P2
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 64/100
angular/components#30536 · 3 Reaktionen ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in angular/components
Ähnliche Issues
-
check:passed streams:add
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
Fission-AI/OpenSpec#1986 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
nestjs/docs.nestjs.com#3554 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
publicodes/publicodes#868 ·
-
namespace operations
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 78/100
EclipseFdn/open-vsx.org#13488 ·
Maintainer antworten meist innerhalb von 2 Tagen