Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung | |||
| de:modul:m291:learningunits:lu04:theorie:b_events [2026/03/01 21:39] – gkoch | de:modul:m291:learningunits:lu04:theorie:b_events [2026/03/01 21:44] (aktuell) – gkoch | ||
|---|---|---|---|
| Zeile 6: | Zeile 6: | ||
| Ein **Event** ist ein Signal, das der Browser aussendet, wenn etwas passiert – ein Klick, eine Tastatureingabe, | Ein **Event** ist ein Signal, das der Browser aussendet, wenn etwas passiert – ein Klick, eine Tastatureingabe, | ||
| + | <WRAP box round center 80%> | ||
| <code javascript> | <code javascript> | ||
| const btn = document.querySelector('# | const btn = document.querySelector('# | ||
| Zeile 13: | Zeile 14: | ||
| }); | }); | ||
| </ | </ | ||
| + | </ | ||
| - | <WRAP tip> | + | < |
| **Verbindung zum Alarado-Projekt: | **Verbindung zum Alarado-Projekt: | ||
| </ | </ | ||
| Zeile 22: | Zeile 24: | ||
| ==== Allgemeine Interaktion ==== | ==== Allgemeine Interaktion ==== | ||
| + | <WRAP box round center 80%> | ||
| ^ Event ^ Wann? ^ Einsatz ^ | ^ Event ^ Wann? ^ Einsatz ^ | ||
| | '' | | '' | ||
| Zeile 31: | Zeile 33: | ||
| | '' | | '' | ||
| | '' | | '' | ||
| + | </ | ||
| + | <WRAP box round center 80%> | ||
| <code javascript> | <code javascript> | ||
| // Tastatur: Escape schliesst ein Element | // Tastatur: Escape schliesst ein Element | ||
| Zeile 46: | Zeile 49: | ||
| }); | }); | ||
| </ | </ | ||
| + | </ | ||
| ===== Pointer Events (moderner Standard) ===== | ===== Pointer Events (moderner Standard) ===== | ||
| Pointer Events sind der **aktuelle Standard** für alle Zeigereingaben. Sie decken Maus, Touchscreen und Stift mit einem einzigen Event-System ab – und ersetzen damit die älteren separaten Maus- und Touch-Events. | Pointer Events sind der **aktuelle Standard** für alle Zeigereingaben. Sie decken Maus, Touchscreen und Stift mit einem einzigen Event-System ab – und ersetzen damit die älteren separaten Maus- und Touch-Events. | ||
| + | <WRAP box round center 80%> | ||
| ^ Event ^ Wann? ^ | ^ Event ^ Wann? ^ | ||
| | '' | | '' | ||
| Zeile 58: | Zeile 62: | ||
| | '' | | '' | ||
| | '' | | '' | ||
| + | </ | ||
| - | ==== Wichtige Eigenschaften des Event-Objekts ==== | ||
| - | |||
| - | ^ Eigenschaft ^ Beschreibung ^ | ||
| - | | '' | ||
| - | | '' | ||
| - | | '' | ||
| - | | '' | ||
| - | | '' | ||
| ==== Beispiel: Hover und Klick mit Pointer Events ==== | ==== Beispiel: Hover und Klick mit Pointer Events ==== | ||
| + | <WRAP box round center 60%> | ||
| <code javascript> | <code javascript> | ||
| const box = document.querySelector(' | const box = document.querySelector(' | ||
| Zeile 92: | Zeile 89: | ||
| }); | }); | ||
| </ | </ | ||
| + | </ | ||
| - | <WRAP important> | + | < |
| **Ältere Alternativen: | **Ältere Alternativen: | ||
| </ | </ | ||
| Zeile 101: | Zeile 99: | ||
| Alle Handler erhalten automatisch ein **Event-Objekt** als Parameter: | Alle Handler erhalten automatisch ein **Event-Objekt** als Parameter: | ||
| + | <WRAP box round center 80%> | ||
| ^ Eigenschaft / Methode ^ Beschreibung ^ | ^ Eigenschaft / Methode ^ Beschreibung ^ | ||
| | '' | | '' | ||
| Zeile 115: | Zeile 113: | ||
| }); | }); | ||
| </ | </ | ||
| + | </ | ||
| ===== State – Zustand im UI ===== | ===== State – Zustand im UI ===== | ||
| Zeile 122: | Zeile 120: | ||
| Das Muster kennen Sie bereits vom Toggle: | Das Muster kennen Sie bereits vom Toggle: | ||
| + | <WRAP box round center 60%> | ||
| ^ Zustand ^ Klasse gesetzt? ^ '' | ^ Zustand ^ Klasse gesetzt? ^ '' | ||
| | geschlossen | '' | | geschlossen | '' | ||
| | offen | '' | | offen | '' | ||
| + | </ | ||
| ==== State aus dem DOM lesen ==== | ==== State aus dem DOM lesen ==== | ||
| Sie können den Zustand direkt aus dem DOM ablesen, ohne eine eigene Variable zu führen: | Sie können den Zustand direkt aus dem DOM ablesen, ohne eine eigene Variable zu führen: | ||
| + | <WRAP box round center 80%> | ||
| <code javascript> | <code javascript> | ||
| const panel = document.querySelector(' | const panel = document.querySelector(' | ||
| Zeile 147: | Zeile 146: | ||
| }); | }); | ||
| </ | </ | ||
| + | </ | ||
| ==== Alle anderen Panels schliessen ==== | ==== Alle anderen Panels schliessen ==== | ||
| Bei einem klassischen Accordion soll immer nur ein Panel offen sein: | Bei einem klassischen Accordion soll immer nur ein Panel offen sein: | ||
| + | <WRAP box round center 80%> | ||
| <code javascript> | <code javascript> | ||
| const buttons = document.querySelectorAll(' | const buttons = document.querySelectorAll(' | ||
| Zeile 174: | Zeile 174: | ||
| }); | }); | ||
| </ | </ | ||
| + | </ | ||