angular / angular/components

bug(CDK Overlay): cdkConnectedOverlay ConnectedPosition not correctly calculated after scrolling on mobile browser

Ouverte
#23,037 1 commentaire 4 réactions 0 personnes assignées Voir sur GitHub
area: cdk/overlay needs investigation P3
Langage dominant
TypeScript
Étoiles
25k
Forks
6.8k
Merge moyen
1 j 8 h
PR mergées (30 j)
91

Description

The ConnectedPositions for a cdkConnectedOverlay are not correctly calcullated when browsing and scrolling on a mobile browser. The mobile devices are hiding the address bar when you scroll down. This results in a change of the viewport sizes. If you open a cdkConnected overlay after scrolling it's position is at the wrong location.

#### Reproduction

https://stackblitz.com/edit/components-issue-mbxfr2

Steps to reproduce:
1. Create a component with cdkConnectedOverlay
2. Add it to your application
3. Browse to your angular app on a mobile device a
4. Open the overlay -> this should be correct positioned
5. Scroll down (the browser hides the address bar)
6. Overlay position is on wrong location

#### Expected Behavior

The connected overlay should be on the correct position after scrolling on a mobile device

#### Actual Behavior

The position of the overlay is calculated wrong and displayd at the wrong position.

The position of the overlay with the address bar (as expected)
![Screenshot_20210622-150122_Chrome](https://user-images.githubusercontent.com/78798355/122936977-e4e65e80-d371-11eb-81db-b9dcfa474cb4.jpg)

The position of the overlay without the address bar, after scrolling (not as expected)
![Screenshot_20210622-150129_Chrome](https://user-images.githubusercontent.com/78798355/122936983-e57ef500-d371-11eb-958e-ea24497869b5.jpg)

#### Environment
- Angular: 12
- CDK/Material: 12
- Browser(s): Chrome Android, Safari IOS
- Operating System: IOS, Android

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par la reproduction StackBlitz liée et le point d’entrée du positionnement cdkConnectedOverlay de CDK. Reproduisez le problème sur Chrome Android ou Safari iOS en ouvrant l’overlay, en faisant défiler la page pour masquer la barre d’adresse, puis en l’ouvrant à nouveau. C’est terminé lorsque l’overlay connecté reste correctement positionné après les changements du viewport mobile.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
angular, typescript
Domaine
frontend
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.