كيفية البحث/تصفية القائمة المنسدلة

تعلم كيفية البحث في القائمة المنسدلة باستخدام CSS وJavaScript.

تصفية القائمة المنسدلة

تجربة شخصية

إنشاء قائمة منسدلة قابلة للنقر

إنشاء قائمة منسدلة تظهر عند ضغط المستخدم على الزر.

الخطوة الأولى - إضافة HTML:

<div class="dropdown">
  <button onclick="myFunction()" class="dropbtn">القائمة المنسدلة</button>
  <div id="myDropdown" class="dropdown-content">
    <input type="text" placeholder="البحث.." id="myInput" onkeyup="filterFunction()">
    <a href="#about">عن الشركة</a>
    <a href="#base">الأساس</a>
    <a href="#blog">المدونة</a>
    <a href="#contact">الاتصال</a>
    <a href="#custom">الخصوصية</a>
    <a href="#support">الدعم</a>
    <a href="#tools">أدوات</a>
  </div>
</div>

توضيح الأمثلة:

يمكنك استخدام أي عنصر لفتح القائمة المنسدلة، مثل عنصر <button>،<a> أو <p>.

استخدم عنصر حاوي (مثل <div>) لإنشاء قائمة منسدلة، وأضف روابط القائمة المنسدلة فيه.

استخدم عنصر <div> لضمان تحديد موضع القائمة المنسدلة بشكل صحيح باستخدام CSS.

الخطوة الثانية - إضافة CSS:

/* 下拉菜单按钮 */
.dropbtn {
  background-color: #04AA6D;
  color: white;
  padding: 16px;
  font-size: 16px;
  border: none;
  cursor: pointer;
}
/* زر القائمة المنسدلة عند مرور الفأرة فوقه أو التركيز عليه */
.dropbtn:hover, .dropbtn:focus {
  background-color: #3e8e41;
}
/* حقل البحث */
#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;
}
/* عند التركيز على حقل البحث أو الضغط عليه */
#myInput:focus {outline: 3px solid #ddd;}
/* صندوق <div> - يستخدم لتوجيه محتويات القائمة المنسدلة */
.dropdown {
  position: relative;
  display: inline-block;
}
/* محتويات القائمة المنسدلة (تخفيها بشكل افتراضي) */
.dropdown-content {
  display: none;
  position: absolute;
  background-color: #f6f6f6;
  min-width: 230px;
  border: 1px solid #ddd;
  z-index: 1;
}
/* الروابط داخل القائمة المنسدلة */
.dropdown-content a {
  color: black;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
}
/* تغيير لون رابط القائمة المنسدلة عند مرور الفأرة فوقه */
.dropdown-content a:hover {background-color: #f1f1f1}
/* عرض القائمة المنسدلة (عند الضغط على زر القائمة المنسدلة، يتم إضافة هذا الكلاس إلى صندوق .dropdown-content) */
.show {display:block;}

توضيح الأمثلة:

تم تصميم زر القائمة المنسدلة ليشمل الألوان الخلفية، الهوامش الداخلية، التأثيرات عند التسويق، إلخ.

.dropdown استخدام position:relative، لأننا نريد أن يكون المحتوى المنسدل في نفس المكان أسفل زر القائمة المنسدلة (من خلال استخدام position:absolute تنفيذ).

.dropdown-content المحتوى الحقيقي للقائمة المنسدلة. بشكل افتراضي، هو مخفي ويظهر عند التسويق (انظر أدناه). ملاحظة،min-width تم تعيينه إلى 230px. يمكنك تعديله حسب الحاجة. تنبيه: إذا كنت ترغب في أن يكون عرض المحتوى المنسدل متساوياً مع عرض زر القائمة المنسدلة، فإنه يمكنك تعيين width تم تعيينه إلى 100% (وبالإضافة إلى overflow تم تعيينه إلى auto، لتمكين التمرير في الشاشات الصغيرة).

تم تصميم حقل البحث (#myInput) ليتناسب مع القائمة المنسدلة الداخلية. تم إضافة رمز البحث، وهو موجود في اليسار داخل حقل البحث، لإيضاح أن هذا في الواقع هو حقل بحث.

الخطوة الثالثة - إضافة JavaScript:

/* عند الضغط على الزر، يتحول التبديل بين إخفاء العرض وإظهاره للمحتوى المنسدل */
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

دليل:كيفية إنشاء قائمة تنقل قابلة للسحب