Come filtrare gli elementi
- Pagina precedente Tabella di筛选
- Pagina successiva Menu a discesa di筛选
Impara come filtrare gli elementi basandoti sui nomi delle classi.
Filtra gli elementi DIV
BMW
Arancia
Volvo
Rosso
Ford
Blu
Gatto
Cane
Melone
Kiwi
Banana
Limone
Mucca
BYD
Crea elementi DIV filtrabili
Primo passo - Aggiungi HTML:
<!-- Pulsanti di controllo --> <div id="myBtnContainer"> <button class="btn active" onclick="filterSelection('all')">Mostra tutto</button> <button class="btn" onclick="filterSelection('cars')">Automobili</button> <button class="btn" onclick="filterSelection('animals')">Animali</button> <button class="btn" onclick="filterSelection('fruits')">Frutti</button> <button class="btn" onclick="filterSelection('colors')">Colori</button> </div> <!-- Elementi filtrabili. Si prega di notare che alcuni possono avere più classi (se appartengono a più categorie, possono essere utilizzate queste classi) --> <div class="container"> <div class="filterDiv cars">BMW</div> <div class="filterDiv colors fruits">Arancia</div> <div class="filterDiv cars">Volvo</div> <div class="filterDiv colors">Rosso</div> <div class="filterDiv cars">Ford</div> <div class="filterDiv colors">Blu</div> <div class="filterDiv animals">Gatto</div> <div class="filterDiv animals">Cane</div> <div class="filterDiv fruits">Melone</div> <div class="filterDiv fruits animals">Mela verde</div> <div class="filterDiv fruits">Banana</div> <div class="filterDiv fruits">Limone</div> <div class="filterDiv animals">Mucca</div> </div>
Passo 2 - Aggiungi CSS:
.container { sovraccarico: nascosto; } .filterDiv { flottante: sinistro; sfondo-color: #2196F3; colore: #ffffff; larghezza: 100px; altezza-linea: 100px; allineamento-testo: centro; margine: 2px; visualizzazione: none; /* Nascondi per default */ } /* Aggiungi la classe "show" agli elementi filtrati */ .show { visualizzazione: blocco; } /* Imposta lo stile dei pulsanti */ .btn { bordo: none; contorno: none; spaziatura: 12px 16px; sfondo-color: #f1f1f1; cursore: puntatore; } /* Aggiungi sfondo grigio chiaro quando il mouse è sopra */ .btn:hover { sfondo-color: #ddd; } /* Aggiungi sfondo scuro alla pulsante attiva */ .btn.active { sfondo-color: #666; colore: bianco; }
Passo 3 - Aggiungi JavaScript:
filterSelection("all") function filterSelection(c) { var x, i; x = document.getElementsByClassName("filterDiv"); if (c == "all") c = ""; // Aggiungi la classe "show" (display:block) agli elementi filtrati e rimuovi la classe "show" dagli elementi non selezionati for (i = 0; i < x.length; i++) { w3RemoveClass(x[i], "show"); if (x[i].className.indexOf(c) > -1) w3AddClass(x[i], "show"); } } // Mostra gli elementi filtrati 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]; } } } // Nascondi gli elementi non selezionati 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(" "); } // Aggiungi la classe attiva (evidenzia) al pulsante di controllo corrente 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"; }); }
- Pagina precedente Tabella di筛选
- Pagina successiva Menu a discesa di筛选