Strona bloga z motywem
Część sekcji JavaScript w praktyce ścieżki HTML w Coddy. Lekcja 27 z 27.
Wyzwanie
ŁatwyW tym wyzwaniu mamy stronę bloga fotograficznego o nazwie Lens & Light. Zawiera wpisy na blogu z poradami fotograficznymi, przycisk przełączający ciemny/jasny motyw oraz prosty formularz zapisu do newslettera, który po wysłaniu wyświetla komunikat toast.
Mamy już gotowe HTML i CSS dla tej strony bloga fotograficznego. Twoim zadaniem jest dodanie funkcjonalności JavaScript:
- Przełączanie motywu: Dodaj detektor zdarzeń do przycisku przełączania. Po kliknięciu przycisku przełącz klasę
dark-modena elemencie<body>, aby zmienić motyw. - Komunikat toast, Po wysłaniu formularza spraw, aby komunikat toast stał się widoczny, usuwając klasę "hidden" z elementu toast i dodając klasę "show" do elementu toast
Spróbuj swoich sił
<!DOCTYPE html>
<html>
<head>
<title>Photographer's Blog</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<header>
<h1>Lens & Light</h1>
<button id="themeToggle">Toggle Theme</button>
</header>
<main>
<article class="post">
<h2>Capturing Golden Hour</h2>
<p>
The hour before sunset and after sunrise brings warm, soft light that adds
depth and atmosphere to portraits and landscapes. Every photographer should
experiment with golden hour lighting.
</p>
</article>
<article class="post">
<h2>5 Tips for Street Photography</h2>
<p>
Look for interesting shadows, capture candid emotions, blend into the crowd,
use a prime lens, and always be ready to click. Street photography is about
telling raw and authentic stories.
</p>
</article>
<section class="newsletter">
<h3>Subscribe to Photo Notes</h3>
<form id="newsletterForm">
<input type="email" id="email" placeholder="Enter your email">
<button type="submit">Sign Up</button>
</form>
</section>
</main>
<div id="toast" class="toast hidden">Subscribed successfully! 📸</div>
<script src="script.js"></script>
</body>
</html>
Wszystkie lekcje w sekcji JavaScript w praktyce
1Interaktywność/komponenty UI
KartyAkordeon (rozwijanie/zwijanie)Modal (otwieranie/zamykanie)Menu rozwijane2Formularze i walidacja
Walidacja danych wejściowychNiestandardowe komunikaty o błędachPrzyciski przesyłania9Końcowe wyzwania
Interaktywny akordeon FAQFormularz logowaniaResponsywna nawigacjaStrona bloga z motywemPoćwicz samodzielnie: Edytor online Web