Gewusst wie: Dropdown suchen/filtern
Erfahren Sie, wie Sie mit CSS und JavaScript nach Elementen in einem Dropdown-Menü suchen.
Filter-Dropdown-Menü
Erstellen Sie ein anklickbares Dropdown
Erstellen Sie ein Dropdown-Menü, das angezeigt wird, wenn der Benutzer auf eine Schaltfläche klickt.
Schritt 1) HTML hinzufügen:
Beispiel
<div class="dropdown">
<button onclick="myFunction()" class="dropbtn">Dropdown</button>
<div id="myDropdown" class="dropdown-content">
<input
type="text" placeholder="Search.." id="myInput" onkeyup="filterFunction()">
<a href="#about">About</a>
<a href="#base">Base</a>
<a href="#blog">Blog</a>
<a href="#contact">Contact</a>
<a href="#custom">Custom</a>
<a href="#support">Support</a>
<a href="#tools">Tools</a>
</div>
</div>
Beispiel erklärt
Verwenden Sie ein beliebiges Element, um das Dropdown-Menü zu öffnen, z. B. ein <button>-, <a>- oder <p>-Element.
Verwenden Sie ein Containerelement (wie <div>), um das Dropdown-Menü zu erstellen, und fügen Sie die Dropdown-Links darin hinzu.
Wickeln Sie ein <div>-Element um die Schaltfläche und das <div>, um das Dropdown-Menü mit CSS korrekt zu positionieren.
Schritt 2) CSS hinzufügen:
Beispiel
/* Dropdown Button */
.dropbtn {
background-color: #04AA6D;
color: white;
padding: 16px;
font-size: 16px;
border: none;
cursor: pointer;
}
/* Dropdown
button on hover & focus */
.dropbtn:hover, .dropbtn:focus {
background-color: #3e8e41;
}
/* The search field */
#myInput {
box-sizing: border-box;
background-image: url('searchicon.png');
background-position: 14px 12px;
background-repeat: no-repeat;
font-size: 16px;
padding: 14px 20px 12px 45px;
border:
none;
border-bottom: 1px solid #ddd;
}
/* The search field
when it gets focus/clicked on */
#myInput:focus {outline: 3px solid #ddd;}
/* The
container <div> - needed to position the dropdown content */
.dropdown {
position: relative;
display:
inline-block;
}
/* Dropdown Content (Hidden by Default) */
.dropdown-content {
display: none;
position:
absolute;
background-color: #f6f6f6;
min-width: 230px;
border: 1px solid #ddd;
z-index: 1;
}
/* Links inside the dropdown */
.dropdown-content a {
color: black;
padding: 12px 16px;
text-decoration: none;
display: block;
}
/* Change color of dropdown links on hover */
.dropdown-content a:hover {background-color: #f1f1f1}
/* Show the dropdown menu (use JS to add this class to the .dropdown-content
container when the user clicks on the dropdown button) */
.show {display:block;}
Beispiel erklärt
Wir haben die Dropdown-Schaltfläche mit einer Hintergrundfarbe, Polsterung, Hover-Effekt usw. gestaltet.
Die .dropdown
Klasse verwendet position:relative
, was erforderlich ist, wenn der Dropdown-Inhalt direkt unter der Dropdown-Schaltfläche platziert werden soll (mithilfe von position:absolute
).
Die .dropdown-content
Klasse enthält das eigentliche Dropdown-Menü. Es ist standardmäßig ausgeblendet und wird beim Hover angezeigt (siehe unten). Beachten Sie, dass die min-width
Größe auf 230 Pixel eingestellt ist. Fühlen Sie sich frei, dies zu ändern. Tipp: Wenn Sie möchten, dass die Breite des Dropdown-Inhalts so breit wie die Dropdown-Schaltfläche ist, stellen Sie den Wert width
auf 100 % ein (und overflow:auto
um das Scrollen auf kleinen Bildschirmen zu ermöglichen).
Das Suchfeld (#myInput) ist so gestaltet, dass es in das Dropdown-Menü passt. Wir haben ein Suchsymbol hinzugefügt, das links im Suchfeld platziert wird, um anzuzeigen, dass es sich tatsächlich um ein Suchfeld handelt.
Schritt 3) JavaScript hinzufügen:
Beispiel
/* When the user clicks on the button,
toggle between hiding and showing
the dropdown content */
function myFunction() {
document.getElementById("myDropdown").classList.toggle("show");
}
function filterFunction() {
var input, filter, ul, li, a, i;
input = document.getElementById("myInput");
filter =
input.value.toUpperCase();
div = document.getElementById("myDropdown");
a = div.getElementsByTagName("a");
for (i = 0; i < a.length; i++) {
txtValue = a[i].textContent || a[i].innerText;
if (txtValue.toUpperCase().indexOf(filter) > -1) {
a[i].style.display = "";
} else {
a[i].style.display = "none";
}
}
}
Tipp: Gehen Sie zu unserem CSS-Dropdown-Tutorial , um mehr über Dropdowns zu erfahren.
Tipp: Gehen Sie zu unseren Hoverable Dropdowns , um mehr über Hoverable Dropdowns zu erfahren