วิธีการ - ค้นหา/กรองรายการแบบเลื่อนลง
เรียนรู้วิธีค้นหารายการในเมนูดรอปดาวน์ด้วย CSS และ JavaScript
กรองเมนูแบบเลื่อนลง
สร้างดร็อปดาวน์ที่คลิกได้
สร้างเมนูแบบเลื่อนลงที่ปรากฏขึ้นเมื่อผู้ใช้คลิกที่ปุ่ม
ขั้นตอนที่ 1) เพิ่ม HTML:
ตัวอย่าง
<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>
ตัวอย่างที่อธิบาย
ใช้องค์ประกอบใดๆ เพื่อเปิดเมนูแบบเลื่อนลง เช่น <button>, <a> หรือ <p> องค์ประกอบ
ใช้องค์ประกอบคอนเทนเนอร์ (เช่น <div>) เพื่อสร้างเมนูแบบเลื่อนลงและเพิ่มลิงก์แบบเลื่อนลงภายใน
ล้อม <div> องค์ประกอบรอบปุ่มและ <div> เพื่อวางตำแหน่งเมนูแบบเลื่อนลงอย่างถูกต้องด้วย CSS
ขั้นตอนที่ 2) เพิ่ม CSS:
ตัวอย่าง
/* 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;}
ตัวอย่างที่อธิบาย
เราได้จัดรูปแบบปุ่มดรอปดาวน์ด้วยสีพื้นหลัง ช่องว่างภายใน เอฟเฟกต์โฮเวอร์ ฯลฯ
คลาส.dropdown
ใช้position:relative
ซึ่งจำเป็นเมื่อเราต้องการให้วางเนื้อหาดรอปดาวน์ไว้ด้านล่างปุ่มดรอปดาวน์ (โดยใช้position:absolute
)
ชั้น.dropdown-content
เรียนถือเมนูดรอปดาวน์จริง มันถูกซ่อนไว้โดยค่าเริ่มต้น และจะแสดงเมื่อวางเมาส์เหนือ (ดูด้านล่าง) โปรดทราบว่าmin-width
ตั้งค่าเป็น 230px อย่าลังเลที่จะเปลี่ยนสิ่งนี้ เคล็ดลับ:หากคุณต้องการให้ความกว้างของเนื้อหาดรอปดาวน์กว้างเท่ากับปุ่มดรอปดาวน์ ให้ตั้งค่าเป็นwidth
100% (และoverflow:auto
เพื่อเปิดใช้งานการเลื่อนบนหน้าจอขนาดเล็ก)
ช่องค้นหา (#myInput) ออกแบบมาให้พอดีกับเมนูดรอปดาวน์ เราได้เพิ่มไอคอนค้นหา ซึ่งวางไว้ทางด้านซ้ายในช่องค้นหาเพื่อระบุว่านี่คือช่องค้นหาจริงๆ
ขั้นตอนที่ 3) เพิ่ม JavaScript:
ตัวอย่าง
/* 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";
}
}
}
เคล็ดลับ:ไปที่CSS Dropdowns Tutorialเพื่อเรียนรู้เพิ่มเติมเกี่ยวกับดรอปดาวน์
เคล็ดลับ:ไปที่ รายการแบบเลื่อนลงที่ เลื่อนได้เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับรายการแบบเลื่อนลงที่เลื่อนได้