diff --git a/web/app/src/auswahl.ts b/web/app/src/auswahl.ts index 4c4ee7d..98a2a11 100644 --- a/web/app/src/auswahl.ts +++ b/web/app/src/auswahl.ts @@ -198,7 +198,18 @@ export function auswahl(optionen: Option[], vorgabe = ''): Auswahlfeld { } }); document.addEventListener('keydown', e => { if (e.key === 'Escape' && offen) schliessen(); }); - window.addEventListener('scroll', () => schliessen(), { passive: true, capture: true }); + // **Scrollen in der Liste schliesst sie nicht.** + // + // Der Zuhörer hängt mit `capture` am Fenster, damit auch ein Bildlauf in + // einem inneren Behälter die Liste schliesst — sie steht `position: fixed` + // und bliebe sonst neben dem Knopf stehen, der längst weggescrollt ist. + // Nur: eine Liste mit zwanzig Genres scrollt selbst, und genau dieses + // Ereignis kam hier ebenfalls an. Wer die Liste durchblättern wollte, + // schloss sie dabei. + window.addEventListener('scroll', e => { + if (offen && e.target instanceof Node && offen.contains(e.target)) return; + schliessen(); + }, { passive: true, capture: true }); return { element: knopf,