Dropdown
Teil des Abschnitts JavaScript in Action der HTML-Journey von Coddy — Lektion 4 von 27.
Die Dropdown-Komponente ist ein gängiges UI-Element, das bei Klick zusätzliche Inhalte anzeigt.
Beginnen Sie mit der Erstellung der HTML-Struktur für ein Dropdown-Menü:
<div class="dropdown">
<button class="dropdown-toggle">Select an option</button>
<div class="dropdown-menu">
<a href="#">Option 1</a>
<a href="#">Option 2</a>
<a href="#">Option 3</a>
</div>
</div>Fügen Sie etwas einfaches CSS hinzu, um das Dropdown-Menü zu gestalten:
.dropdown {
position: relative;
display: inline-block;
}
.dropdown-menu {
display: none;
position: absolute;
background-color: #f9f9f9;
z-index: 1;
}
.show {
display: block;
}Fügen Sie nun JavaScript hinzu, um das Dropdown-Menü umzuschalten:
const dropdownToggle = document.querySelector('.dropdown-toggle');
const dropdownMenu = document.querySelector('.dropdown-menu');
dropdownToggle.addEventListener('click', function() {
dropdownMenu.classList.toggle('show');
});Wenn die Schaltfläche angeklickt wird, fügt das JavaScript die Klasse 'show' hinzu oder entfernt sie, was die Sichtbarkeit des Dropdown-Menüs steuert.
Aufgabe
EinfachIhre Aufgabe:
- Fügen Sie die dritte Option namens “Logout” mit der Klasse
logoutin das Dropdown-Menü ein. - Vervollständigen Sie den Click-Event-Listener, indem Sie die Zeile hinzufügen, die die "show" Klasse im Dropdown-Menü umschaltet.
Probier es selbst
<!DOCTYPE html>
<html>
<head>
<title>Dropdown Challenge</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<h2>Welcome to the Dashboard</h2>
<p>Click the button below to open your profile menu:</p>
<div id="profileDropdown" class="dropdown">
<button class="dropdown-toggle">
My Profile
</button>
<div class="dropdown-menu">
<a href="#">View Profile</a>
<a href="#">Settings</a>
</div>
</div>
<script src="script.js"></script>
</body>
</html>
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in JavaScript in Action
9Abschluss-Herausforderungen
Interaktives FAQ-AkkordeonLogin-FormularResponsive NavbarBlog-Seite mit Theme