Wie filtert man Elemente
- Previous page Filter table
- Next page Filter dropdown menu
Lernen Sie, wie man DIV-Elemente basierend auf Klassennamen filtert.
DIV-Elemente filtern
BMW
Orange
Volvo
Rot
Ford
Blau
Katze
Hund
Melone
Kiwi
Banane
Zitrone
Kuh
BYD
Erstellen Sie DIV-Elemente, die gefiltert werden können
Schritt 1 - HTML hinzufügen:
<!-- Steuerelemente --> <div id="myBtnContainer"> <button class="btn active" onclick="filterSelection('all')"> Alle anzeigen</button> <button class="btn" onclick="filterSelection('cars')"> Autos</button> <button class="btn" onclick="filterSelection('animals')"> Tiere</button> <button class="btn" onclick="filterSelection('fruits')"> Früchte</button> <button class="btn" onclick="filterSelection('colors')"> Farben</button> </div> <!-- Filterbare Elemente. Bitte beachten Sie, dass einige mehrere Klassennamen haben können (wenn sie mehreren Kategorien gehören, können diese Klassennamen verwendet werden) --> <div class="container"> <div class="filterDiv cars">BMW</div> <div class="filterDiv colors fruits">Orange</div> <div class="filterDiv cars">Volvo</div> <div class="filterDiv colors">Rot</div> <div class="filterDiv cars">Ford</div> <div class="filterDiv colors">Blau</div> <div class="filterDiv animals">Katze</div> <div class="filterDiv animals">Hund</div> <div class="filterDiv fruits">Melone</div> <div class="filterDiv fruits animals">Kiwi</div> <div class="filterDiv fruits">Banane</div> <div class="filterDiv fruits">Zitrone</div> <div class="filterDiv animals">Kuh</div> </div>
Zweiter Schritt - Fügen Sie CSS hinzu:
.container { overflow: hidden; } .filterDiv { float: left; background-color: #2196F3; color: #ffffff; width: 100px; line-height: 100px; text-align: center; margin: 2px; display: none; /* Standardmäßig versteckt */ } /* Fügen Sie der gefilterten Elemente die Klasse "show" hinzu */ .show { display: block; } /* Setzen Sie das Stil des Buttons */ .btn { border: none; outline: none; padding: 12px 16px; background-color: #f1f1f1; cursor: pointer; } /* Fügen Sie beim Mausüberfahren einen hellgrauen Hintergrund hinzu */ .btn:hover { background-color: #ddd; } /* Fügen Sie dem aktiven Button einen dunklen Hintergrund hinzu */ .btn.active { background-color: #666; color: white; }
Dritter Schritt - Fügen Sie JavaScript hinzu:
filterSelection("all") function filterSelection(c) { var x, i; x = document.getElementsByClassName("filterDiv"); if (c == "all") c = ""; // Der gefilterten Elementen die Klasse "show" (display:block) hinzufügen und die Klasse "show" von den nicht ausgewählten Elementen entfernen for (i = 0; i < x.length; i++) { w3RemoveClass(x[i], "show"); if (x[i].className.indexOf(c) > -1) w3AddClass(x[i], "show"); } } // Die gefilterten Elemente anzeigen function w3AddClass(element, name) { var i, arr1, arr2; arr1 = element.className.split(" "); arr2 = name.split(" "); for (i = 0; i < arr2.length; i++) { if (arr1.indexOf(arr2[i]) == -1) { element.className += " " + arr2[i]; } } } // Die nicht ausgewählten Elemente ausblenden function w3RemoveClass(element, name) { var i, arr1, arr2; arr1 = element.className.split(" "); arr2 = name.split(" "); for (i = 0; i < arr2.length; i++) { while (arr1.indexOf(arr2[i]) > -1) { arr1.splice(arr1.indexOf(arr2[i]), 1); } } element.className = arr1.join(" "); } // Der aktuelle Steuerelement hinzufügen, um die Aktivitätsklasse (Hervorhebung) hinzuzufügen var btnContainer = document.getElementById("myBtnContainer"); var btns = btnContainer.getElementsByClassName("btn"); for (var i = 0; i < btns.length; i++) { btns[i].addEventListener("click", function() { var current = document.getElementsByClassName("active"); current[0].className = current[0].className.replace(" active", ""); this.className += " active"; }); }
- Previous page Filter table
- Next page Filter dropdown menu