Hvordan filtrere elementer
- Forrige side Filter Tabel
- Næste side Filter Dropdown Menu
Lær hvordan man filtrerer DIV-elementer baseret på klassenavn
Filtrer DIV-elementer
BMW
Appelrød
Volvo
Rød
Ford
Blå
Katt
Hund
Melon
Kiwi
Banane
Lime
Ku
BYD
Opret filtrerbare DIV-elementer
Første trin - Tilføj HTML:
<!-- Kontroleknapper --> <div id="myBtnContainer"> <button class="btn active" onclick="filterSelection('all')"> Vis alle</button> <button class="btn" onclick="filterSelection('cars')"> Biler</button> <button class="btn" onclick="filterSelection('animals')"> Dyr</button> <button class="btn" onclick="filterSelection('fruits')"> Frugter</button> <button class="btn" onclick="filterSelection('colors')"> Farver</button> </div> <!-- Kan filtreres elementer. Bemærk, nogle har flere klassenavne (hvis de tilhører flere kategorier, kan disse navne bruges) --> <div class="container"> <div class="filterDiv cars">BMW</div> <div class="filterDiv colors fruits">Appelrød</div> <div class="filterDiv cars">Volvo</div> <div class="filterDiv colors">Rød</div> <div class="filterDiv cars">Ford</div> <div class="filterDiv colors">Blå</div> <div class="filterDiv animals">Katt</div> <div class="filterDiv animals">Hund</div> <div class="filterDiv fruits">Melon</div> <div class="filterDiv fruits animals">Ananas</div> <div class="filterDiv fruits">Banane</div> <div class="filterDiv fruits">Lime</div> <div class="filterDiv animals">Ku</div> </div>
Andet trin - Tilføj CSS:
.container { overskydende: skjult; } .filterDiv { flydende: venstre; baggrundsfarve: #2196F3; farve: #ffffff; bredde: 100px; linjehøjde: 100px; tekstjustering: center; marginal: 2px; vis: ingen; /* Standard skjult */ } /* Tilføj "show" klasse til filtrerede elementer */ .show { vis: blok; } /* Indstil stilen for knapper */ .btn { kanter: ingen; kantlinje: ingen; marginal: 12px 16px; baggrundsfarve: #f1f1f1; markør: pegefinger; } /* Tilføj lys grå baggrund ved museoverførsel */ .btn:hover { baggrundsfarve: #ddd; } /* Tilføj mørk baggrund til aktiv knap */ .btn.active { baggrundsfarve: #666; farve: hvid; }
Tredje trin - Tilføj JavaScript:
filterSelection("all") function filterSelection(c) { var x, i; x = document.getElementsByClassName("filterDiv"); if (c == "all") c = " // Tilføj "show"-klassen (display:block) til de filtrerede elementer og fjern "show"-klassen fra de ikke valgte elementer for (i = 0; i < x.length; i++) { w3RemoveClass(x[i], "show"); if (x[i].className.indexOf(c) > -1) w3AddClass(x[i], "show"); } } // Vis filtrerede elementer 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]; } } } // Skjul de ikke valgte elementer 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(" "); } // Tilføj aktiv klasse til det aktuelle kontrolknappen (gør det fremhævet) 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"; }); }
- Forrige side Filter Tabel
- Næste side Filter Dropdown Menu