Wer die Genreliste durchblättern wollte, schloss sie dabei
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 einem Knopf stehen, der längst weggescrollt ist. Nur scrollt eine Liste mit zwanzig Genres selbst, und dieses Ereignis kam dort ebenfalls an. Jetzt wird geprüft, woher es stammt. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
aeaf6eb578
commit
e87d50e470
+12
-1
@@ -198,7 +198,18 @@ export function auswahl(optionen: Option[], vorgabe = ''): Auswahlfeld {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
document.addEventListener('keydown', e => { if (e.key === 'Escape' && offen) schliessen(); });
|
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 {
|
return {
|
||||||
element: knopf,
|
element: knopf,
|
||||||
|
|||||||
Reference in New Issue
Block a user