Cara menggelirkkan elemen
Cara menggelirkkan elemen berdasarkan nama kelas.
Gelirkan elemen DIV
BMW
Jeruk
Volvo
Merah
Ford
Bue
Kucing
Anjing
Buah melon
Kiwi
Pisang
Lemun
Sapi
BYD
Buat elemen DIV yang boleh digilirkan
Langkah pertama - Tambahkan HTML:
<!-- Tombol pengawal --> <div id="myBtnContainer"> <button class="btn active" onclick="filterSelection('all')">Tunjuk Semua</button> <button class="btn" onclick="filterSelection('cars')">Kereta</button> <button class="btn" onclick="filterSelection('animals')">Hewan</button> <button class="btn" onclick="filterSelection('fruits')">Buah-buahan</button> <button class="btn" onclick="filterSelection('colors')">Warna</button> </div> <!-- Boleh digilirkan elemen. Silakan perhatikan, beberapa mempunyai beberapa nama kelas (jika mereka termasuk dalam beberapa kategori, dapat digunakan nama-nama kelas ini) --> <div class="container"> <div class="filterDiv cars">BMW</div> <div class="filterDiv colors fruits">Jeruk</div> <div class="filterDiv cars">Volvo</div> <div class="filterDiv colors">Merah</div> <div class="filterDiv cars">Ford</div> <div class="filterDiv colors">Bue</div> <div class="filterDiv animals">Kucing</div> <div class="filterDiv animals">Anjing</div> <div class="filterDiv fruits">Melon</div> <div class="filterDiv fruits animals">Kiwi</div> <div class="filterDiv fruits">Pisang</div> <div class="filterDiv fruits">Lemon</div> <div class="filterDiv animals">Sapi</div> </div>
Keselamatan ke-2 - Tambahkan CSS:
.container { kelebaran: tak terbatas; } .filterDiv { gerak: kiri; background-color: #2196F3; warna: #ffffff; lebar: 100px; tinggi baris: 100px; tebal teks: tengah; jarak: 2px; display: none; /* Sembunyikan secara default */ } /* Tambahkan kelas "show" ke elemen yang disaring */ .show { display: block; } /* Tetapkan gaya tombol */ .btn { batas: tak ada; garis: tak ada; margin: 12px 16px; background-color: #f1f1f1; cursor: pointer; } /* Tambahkan latar belakang terang putih saat tetikus bergerak */ .btn:hover { background-color: #ddd; } /* Tambahkan latar belakang gelap untuk tombol aktif */ .btn.active { background-color: #666; warna: putih; }
Keselamatan ke-3 - Tambahkan JavaScript:
filterSelection("all") function filterSelection(c) { var x, i; x = document.getElementsByClassName("filterDiv"); if (c == "all") c = ""; // 向过滤后的元素添加 "show" 类(display:block),并从未选中的元素中移除 "show" 类 for (i = 0; i < x.length; i++) { w3RemoveClass(x[i], "show"); if (x[i].className.indexOf(c) > -1) w3AddClass(x[i], "show"); } } // 显示过滤后的元素 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]; } } } // 隐藏未选中的元素 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(" "); } // 向当前的控制按钮添加活动类(高亮显示它) 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"; }); }