fix termin 3 slide overflow and formatting
- rename Projekt slides to Übung - condense overflowing slides - remove JS validation (not fitting lecture context) - remove emojis from summary - add speaker notes for condensed content
This commit is contained in:
@@ -767,57 +767,31 @@ State in Klasse gespeichert
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# Beispiel: Formular-Validierung
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
const form = document.querySelector("#kontaktForm");
|
|
||||||
const emailInput = document.querySelector("#email");
|
|
||||||
const errorMessage = document.querySelector("#error");
|
|
||||||
|
|
||||||
form.addEventListener("submit", function(event) {
|
|
||||||
const email = emailInput.value;
|
|
||||||
|
|
||||||
if (!email.includes("@")) {
|
|
||||||
event.preventDefault();
|
|
||||||
errorMessage.textContent = "Bitte gültige E-Mail eingeben!";
|
|
||||||
errorMessage.style.display = "block";
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Live-Feedback
|
|
||||||
emailInput.addEventListener("input", function() {
|
|
||||||
if (emailInput.value.includes("@")) {
|
|
||||||
errorMessage.style.display = "none";
|
|
||||||
}
|
|
||||||
});
|
|
||||||
```
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Client-Side Validation
|
|
||||||
Zusätzlich zu HTML-Validation
|
|
||||||
UX: Sofortiges Feedback
|
|
||||||
Server-Validation trotzdem nötig!
|
|
||||||
-->
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Hands-On: Interaktive Features (45 Min)
|
# Hands-On: Interaktive Features (45 Min)
|
||||||
|
|
||||||
**Baut in eure Seite ein:**
|
**Baut in eure Seite ein:**
|
||||||
|
|
||||||
1. **Dark Mode Toggle**
|
1. **Dark Mode Toggle** – Button toggelt Klasse auf `body`
|
||||||
|
2. **Accordion/FAQ** – Klick zeigt/versteckt Antwort
|
||||||
|
|
||||||
|
**Tipp:** `classList.toggle()` + CSS `display: none/block`
|
||||||
|
|
||||||
|
**Hilfe:** https://codescripsi.es/
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Ausführlicher:
|
||||||
|
1. Dark Mode Toggle
|
||||||
- Button der Klasse auf `body` toggelt
|
- Button der Klasse auf `body` toggelt
|
||||||
- CSS für `.dark-mode`
|
- CSS für `.dark-mode`
|
||||||
|
|
||||||
2. **Accordion/FAQ**
|
2. Accordion/FAQ
|
||||||
- Klick auf Frage → Antwort erscheint/verschwindet
|
- Klick auf Frage → Antwort erscheint/verschwindet
|
||||||
- Tipp: `classList.toggle()` + CSS `display: none/block`
|
- Tipp: classList.toggle() + CSS display: none/block
|
||||||
|
|
||||||
3. **Formular-Validierung**
|
3. Formular-Validierung (entfernt - passt nicht zum Kurskontext)
|
||||||
- Prüft ob Felder ausgefüllt
|
- Prüft ob Felder ausgefüllt
|
||||||
- Zeigt Fehlermeldung
|
- Zeigt Fehlermeldung
|
||||||
|
-->
|
||||||
**Hilfe:** https://nextlevelshit.github.io/web-engineering-mandala/
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -835,30 +809,21 @@ Server-Validation trotzdem nötig!
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# Projekt: Interaktive Portfolio-Seite
|
# Übung: Interaktive Portfolio-Seite
|
||||||
|
|
||||||
**Ihr habt jetzt alle Bausteine:**
|
**Kombiniert eure Bausteine:**
|
||||||
|
HTML (Struktur) + CSS (Design) + JavaScript (Interaktivität)
|
||||||
- **HTML:** Struktur
|
|
||||||
- **CSS:** Design
|
|
||||||
- **JavaScript:** Interaktivität
|
|
||||||
|
|
||||||
**Kombiniert sie!**
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# Projekt-Anforderungen
|
# Übung: Anforderungen
|
||||||
|
|
||||||
**Must-Have:**
|
**Must-Have:**
|
||||||
- [ ] Semantisches HTML
|
- [ ] Semantisches HTML
|
||||||
- [ ] Responsive CSS (Mobile + Desktop)
|
- [ ] Responsive CSS
|
||||||
- [ ] Mindestens 2 interaktive Features mit JS
|
- [ ] 2 interaktive JS-Features
|
||||||
|
|
||||||
**Nice-to-Have:**
|
**Nice-to-Have:** Dark Mode, Animationen, Formular-Validierung
|
||||||
- [ ] Dark Mode
|
|
||||||
- [ ] Animationen/Transitions
|
|
||||||
- [ ] Formular mit Validierung
|
|
||||||
- [ ] Dynamisch generierte Inhalte
|
|
||||||
|
|
||||||
**Zeit:** 60 Minuten
|
**Zeit:** 60 Minuten
|
||||||
|
|
||||||
@@ -968,35 +933,28 @@ Frameworks für größere Apps, Komponenten-basiert
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
<!-- _class: "" -->
|
||||||
|
|
||||||
# Ressourcen zum Weiterlernen
|
# Ressourcen zum Weiterlernen
|
||||||
|
|
||||||
**Dokumentation:**
|
- **MDN Web Docs:** https://developer.mozilla.org/de/
|
||||||
- MDN Web Docs: https://developer.mozilla.org/de/
|
- **freeCodeCamp:** https://freecodecamp.org
|
||||||
|
- **The Odin Project:** https://theodinproject.com
|
||||||
|
|
||||||
**Interaktiv lernen:**
|
**Interaktiv:**
|
||||||
- HTML: https://nextlevelshit.github.io/html-over-js/
|
- https://codescripsi.es/
|
||||||
- CSS: https://codescripsi.es/
|
|
||||||
- JS Visualisierung: https://nextlevelshit.github.io/web-engineering-mandala/
|
|
||||||
|
|
||||||
**Kurse:**
|
|
||||||
- freeCodeCamp: https://freecodecamp.org
|
|
||||||
- The Odin Project: https://theodinproject.com
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
<!-- _class: "" -->
|
||||||
|
|
||||||
# Tools für die Praxis
|
# Tools für die Praxis
|
||||||
|
|
||||||
**Editoren:**
|
**Editoren:** VS Code (empfohlen), WebStorm, Neovim
|
||||||
- VS Code (empfohlen)
|
|
||||||
- WebStorm (JetBrains)
|
|
||||||
- Neovim (für Terminal-Fans)
|
|
||||||
|
|
||||||
**Online-Editoren:**
|
**Online:** CodePen, StackBlitz
|
||||||
- CodePen: https://codepen.io
|
|
||||||
- StackBlitz: https://stackblitz.com
|
|
||||||
|
|
||||||
**Versionskontrolle:**
|
**Versionskontrolle:** Git + GitHub/GitLab
|
||||||
- Git + GitHub/GitLab
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -1008,30 +966,36 @@ Frameworks für größere Apps, Komponenten-basiert
|
|||||||
|
|
||||||
# Was ihr gelernt habt
|
# Was ihr gelernt habt
|
||||||
|
|
||||||
**Termin 1:**
|
**Termin 1:** Geschichte, Von-Neumann, HTML
|
||||||
|
**Termin 2:** Netzwerke, DNS, HTTP, CSS
|
||||||
|
**Termin 3:** JavaScript, DOM, Events
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Termin 1:
|
||||||
- Geschichte der Informatik (Hollerith → Internet)
|
- Geschichte der Informatik (Hollerith → Internet)
|
||||||
- Von-Neumann-Architektur
|
- Von-Neumann-Architektur
|
||||||
- HTML-Grundlagen
|
- HTML-Grundlagen
|
||||||
|
|
||||||
**Termin 2:**
|
Termin 2:
|
||||||
- Netzwerke, DNS, HTTP
|
- Netzwerke, DNS, HTTP
|
||||||
- CSS: Selektoren, Box-Modell, Flexbox
|
- CSS: Selektoren, Box-Modell, Flexbox
|
||||||
|
|
||||||
**Termin 3:**
|
Termin 3:
|
||||||
- JavaScript: Variablen, Funktionen, Schleifen
|
- JavaScript: Variablen, Funktionen, Schleifen
|
||||||
- DOM-Manipulation
|
- DOM-Manipulation
|
||||||
- Events & Interaktivität
|
- Events & Interaktivität
|
||||||
|
-->
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# Ihr könnt jetzt...
|
# Ihr könnt jetzt...
|
||||||
|
|
||||||
✅ Den historischen Kontext von IT verstehen
|
- Den historischen Kontext von IT verstehen
|
||||||
✅ Erklären wie das Internet funktioniert
|
- Erklären wie das Internet funktioniert
|
||||||
✅ HTML-Seiten strukturieren
|
- HTML-Seiten strukturieren
|
||||||
✅ CSS für Layout und Design nutzen
|
- CSS für Layout und Design nutzen
|
||||||
✅ JavaScript für Interaktivität einsetzen
|
- JavaScript für Interaktivität einsetzen
|
||||||
✅ **Mit EntwicklerInnen auf Augenhöhe sprechen!**
|
- **Mit EntwicklerInnen auf Augenhöhe sprechen!**
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 222 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 141 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 32 KiB |
Reference in New Issue
Block a user