bug(cdk/overlay): scroll blocking overlay persists when documentElement shrinks to the point it is not needed
- Lingua principale
- TypeScript
- Stelle
- 25k
- Fork
- 6.8k
- Merge medio
- 1g 8h
- PR unite (30g)
- 91
Descrizione
### Description
This came up for an app that had a button to launch a full screen dialog. When you click the button it essentially hides the main app and launches the dialog. However, at the time the dialog launches, the content is still showing so it calculates the height based on documentElement here (https://github.com/angular/components/blob/main/src/cdk/overlay/scroll/block-scroll-strategy.ts#L111) and determines the scroll blocking class is needed. The main content then disappears making the blocking class unnecessary, but it never updates after the initial calculation. This results in a disabled scrollbar being shown in the app.
As a workaround, apps in this situation should ensure that they remove content they want to hide & wait for that change to be rendered in the DOM before launching the dialog.
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia in src/cdk/overlay/scroll/block-scroll-strategy.ts intorno alla riga 111, dove la dimensione di documentElement viene usata per decidere se è necessario bloccare lo scorrimento. Riproduci la sequenza aprendo una finestra di dialogo a schermo intero mentre il contenuto principale è ancora presente, quindi nascondi quel contenuto. Il lavoro è completato quando lo stato di blocco non necessario non rimane più attivo e la barra di scorrimento disabilitata non viene mostrata.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- angular, typescript
- Ambito
- frontend
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 45/100