Deine Mission
Diesmal gibt es kein neues Material. Du bekommst eine Liste von Aufgaben, und für alle weißt du schon alles Nötige. Genau so sieht die Arbeit eines echten Entwicklers aus: Du bekommst Anforderungen und setzt sie aus Dingen zusammen, die du schon kennst.
Pflichtteil 🎯
Geh durch deine Website und stell sicher, dass alle fünf Zauber aus diesem Level auf ihr lebendig sind:
- Das Skript ist auf jeder Seite eingebunden und es gibt keine Fehler in der Konsole (F12 – nichts Rotes sollte erscheinen).
- Dunkelmodus – ein Schalter im Header auf jeder Seite, und die Wahl wird gemerkt.
- Ein interaktiver Button oder Zähler – mindestens ein Zauber mit einer Variable und einer Bedingung.
- Eine Fotogalerie mit Lightbox – ein Klick macht ein Foto größer.
- Ein Quiz oder ein Formular mit Validierung – mindestens eines davon. Mach ruhig beides!
Optionale Erweiterungen 🌟
Wähl mindestens eine (oder erfinde deine eigene):
Begrüßung je nach Tageszeit
Die Website begrüßt morgens anders als abends:
<p id="day-greeting"></p>
const dayGreeting = document.getElementById("day-greeting");
const hour = new Date().getHours();
if (hour < 9) {
dayGreeting.textContent = "Good morning! ☀️";
} else if (hour < 18) {
dayGreeting.textContent = "Hi there, have a nice day!";
} else {
dayGreeting.textContent = "Good evening! 🌙";
}
new Date() gibt das aktuelle Datum und die Uhrzeit zurück, .getHours() holt die Stunde daraus.
Zufällige Nachricht beim Klick
Jedes Mal ein anderer Witz, Reiseidee oder Team-Gesang:
const messages = [
"Practice makes perfect!",
"Let's go, Eagles! 🦅",
"You miss every shot you don't take.",
"Fans are the twelfth player.",
];
const messageButton = document.getElementById("message-button");
const messageEl = document.getElementById("message");
messageButton.addEventListener("click", () => {
const random = Math.floor(Math.random() * messages.length);
messageEl.textContent = messages[random];
});
Math.random() gibt eine Zufallszahl zwischen 0 und 1 zurück, und der Rest der Zeile macht daraus eine zufällige Position im Array.
Besuchszähler (nur für dich)
Wie oft hast du deine Website geöffnet? Speichere es in localStorage:
let visits = Number(localStorage.getItem("visits") ?? 0);
visits++;
localStorage.setItem("visits", visits);
console.log("You've opened this page " + visits + " times now");
Number(...) wandelt Text aus dem Speicher in eine Zahl um, und ?? 0 bedeutet „wenn nichts da ist, starte bei null.”
Ausklappbarer Bereich (Akkordeon)
Verstecke ein langes Menü oder eine Liste unter einer klickbaren Überschrift:
const sectionHeading = document.getElementById("expand-heading");
const sectionContent = document.getElementById("expand-content");
sectionHeading.addEventListener("click", () => {
sectionContent.classList.toggle("hidden");
});
Die Klasse .hidden { display: none !important; } hast du schon aus der Galerie-Lektion.
Lade die neue Version ins Internet hoch
Deine Website auf GitHub Pages ist noch die alte Version aus Level 1! Lade die neue hoch:
- Öffne dein Repository auf github.com,
- Add file → Upload files,
- zieh die geänderten Dateien rein (hauptsächlich
script.js,style.cssund alle.html-Dateien) und klick Commit changes.
In einer Minute laufen deine Zauber für alle sichtbar.
Glückwunsch, Zauberer! 🪄 Deine Website ist nicht mehr nur hübsch – sie ist lebendig. Sie reagiert auf Klicks, merkt sich Entscheidungen, stellt Fragen und beantwortet sie. Und du weißt, wie jede einzelne Zeile funktioniert. In Level 3 – Meister lernst du, Websites wie die Profis zu bauen: React, Komponenten und dein eigener Server.
Das nimmst du aus dieser Lektion mit
- JavaScript: Variablen, Bedingungen, Funktionen, Arrays, Objekte, Schleifen – die Grundlagen allen Programmierens.
- Die Zauber-Formel: Element finden → auf Ereignis hören → Aktion ausführen.
localStoragezum Merken,querySelectorAll+forEachfür Gruppen von Elementen, Formulareingaben prüfen.
© 2026 Ing. Martin Polak / AlgoRhino · Nutzungsbedingungen für Inhalte