bug(virtual-scroll): scrollToIndex on viewport while inside cdkVirtualScrollingElement is wrong
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 64/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- Calme
- Stack technique
- angular, typescript
- Domaine
- frontend
Piste de recherche
Commencez par l’implémentation du viewport de défilement virtuel de CDK et le point d’entrée scrollToIndex, puis comparez son comportement avec measureViewportOffset('top') dans la reproduction StackBlitz fournie. Vérifiez la modification avec les cas regular viewport et cdkVirtualScrollingElement : faire défiler jusqu’à l’élément 50 doit sélectionner l’élément 50 dans les deux sections, y compris avec le décalage d’en-tête de 100px.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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
- Langage dominant
- TypeScript
- Étoiles
- 25k
- Forks
- 6.8k
- Merge moyen
- 1 j 7 h
- PR mergées (30 j)
- 92
Préparer son environnement
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de angular/components
-
area: material/datepicker P4
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
angular/components#33763 · 2 commentaires · 3 réactions ·
Les mainteneurs répondent en général sous 1 jour
-
area: material/table P4
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
angular/components#33709 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
area: material/table docs gemini-triaged P4
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
angular/components#33455 ·
Les mainteneurs répondent en général sous 1 jour
-
area: material/core gemini-triaged P3
Difficulté 1/5 Moins d'une heure Accessibilité débutants 78/100
angular/components#33059 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
area: material/dialog P2
Difficulté 2/5 1-3 heures Accessibilité débutants 64/100
angular/components#30536 · 3 réactions ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de angular/components
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
rohitg00/agentmemory#1428 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 86/100
boxlite-ai/boxlite#1729 ·
Les mainteneurs répondent en général sous 1 jour
-
Detect Deno tasks from deno.jsonOuvertedetectors enhancement good first issue
Difficulté 2/5 1-3 heures Accessibilité débutants 86/100
SM260845/readme-gen#1 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
angular/angularfire#3774 ·
Les mainteneurs répondent en général sous 2 jours