چگونه عناصر را فیلتر کنیم
- صفحه قبل جداول فیلتر شده
- صفحه بعد ليست پيچيده انتخاب
یادگیری نحوه فیلتر کردن عناصر بر اساس نام کلاس DIV
فیلتر کردن عناصر DIV
ب ام و
نارنجی
ولوو
قرمز
فورد
آبی
گربه
سگ
هندوانه
کیوی
موز
لیمو
گاو
BYD
ایجاد عناصر DIV قابل فیلتر
قدم اول - اضافه کردن HTML:
<!-- دکمههای کنترل --> <div id="myBtnContainer"> <button class="btn active" onclick="filterSelection('all')"> Show all</button> <button class="btn" onclick="filterSelection('cars')"> Cars</button> <button class="btn" onclick="filterSelection('animals')"> Animals</button> <button class="btn" onclick="filterSelection('fruits')"> Fruits</button> <button class="btn" onclick="filterSelection('colors')"> Colors</button> </div> <!-- قابل فیلتر کردن عناصر. توجه داشته باشید که برخی از عناصر چندین نام کلاس دارند (اگر به چندین دسته تعلق دارند میتوان از این نامها استفاده کرد) --> <div class="container"> <div class="filterDiv cars">BMW</div> <div class="filterDiv colors fruits">Orange</div> <div class="filterDiv cars">Volvo</div> <div class="filterDiv colors">Red</div> <div class="filterDiv cars">Ford</div> <div class="filterDiv colors">Blue</div> <div class="filterDiv animals"> گربه</div> <div class="filterDiv animals"> سگ</div> <div class="filterDiv fruits"> هندوانه</div> <div class="filterDiv fruits animals"> کیوی</div> <div class="filterDiv fruits"> موز</div> <div class="filterDiv fruits">لیمو</div> <div class="filterDiv animals">گاو</div> </div>
مرحله دوم - افزودن CSS:
.container { تداخل: مخفی; } .filterDiv { شناور: چپ; رنگ پسزمینه: #2196F3; رنگ: #ffffff; عرض: 100px; تراز عمودی: 100px; جلو قرار دادن متن: وسط; حاشیه: 2px; نمایش: نه; /* به صورت پیشفرض مخفی */ } /* به عناصر فیلتر شده "show" اضافه کردن کلاس */ .show { نمایش: block; } /* تنظیم سبک دکمه */ .btn { کناره: هیچ; کشیدن: هیچ; حاشیه: 12px 16px; رنگ پسزمینه: #f1f1f1; مؤشک: pointer; } /* در حالت ماوس بر روی آن پسزمینه روشنتر اضافه کردن */ .btn:hover { رنگ پسزمینه: #ddd; } /* به دکمه فعال اضافه کردن پسزمینه تیره */ .btn.active { رنگ پسزمینه: #666; رنگ: سفید; }
مرحلة سوم - افزودن جاوااسکریپت:
filterSelection("all") فونکشن filterSelection(c) { وار x, i; x = دکument.getClassByClassName("filterDiv"); if (c == "all") c = ";"; // فیلٹر کئے گئے عناصر کو "show" کلاس (دکھائیں) اضافہ کریں، غیر منتخب کئے گئے عناصر سے "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"; }); }
- صفحه قبل جداول فیلتر شده
- صفحه بعد ليست پيچيده انتخاب