چگونه ایجاد کنیم: گالری مجموعه کارها با قابلیت فیلتر کردن

یاد بگیرید که چگونه یک گالری مجموعه کارها با قابلیت فیلتر کردن ایجاد کنید.

مجموعه کارهای من

لطفاً روی دکمه کلیک کنید تا یک دسته را فیلتر کنید:

کوه‌ها
کوه‌ها

Lorem ipsum dolor..

نوروز
Lights

Lorem ipsum dolor..

طبیعت
Forest

Lorem ipsum dolor..

اتومبیل
Classic

Lorem ipsum dolor..

اتومبیل
Fast

Lorem ipsum dolor..

اتومبیل
Retro

Lorem ipsum dolor..

اتومبیل
Girl

Lorem ipsum dolor..

اتومبیل
Woman

Lorem ipsum dolor..

اتومبیل
Man

Lorem ipsum dolor..

آزمایش کنید

چگونه وب‌سایت مجموعه کارها ایجاد کنیم

قدم اول - اضافه کردن HTML:

<h2>گزارش‌نویسی</h2>
<div id="myBtnContainer">
  <button class="btn active" onclick="filterSelection('all')">همه را نشان دهید</button>
  <button class="btn" onclick="filterSelection('nature')">طبیعت</button>
  <button class="btn" onclick="filterSelection('cars')">ماشین‌ها</button>
  <button class="btn" onclick="filterSelection('people')">مردم</button>
</div>
بلاگ‌کلیپ گالری شبکه
<div class="row">
  <div class="column nature">
    <div class="content">
      <img src="/w3images/mountains.jpg" alt="Mountains" style="width:100%">
      <h4>کوه‌ها</h4>
      <p>Lorem ipsum dolor..</p>
    </div>
  </div>
  <div class="column nature">
    <div class="content">
      <img src="/w3images/lights.jpg" alt="Lights" style="width:100%">
      <h4>نورها</h4>
      <p>Lorem ipsum dolor..</p>
    </div>
  </div>
  <div class="column nature">
    <div class="content">
      <img src="/w3images/nature.jpg" alt="Nature" style="width:100%">
      <h4>جنگل</h4>
      <p>Lorem ipsum dolor..</p>
    </div>
  </div>
  <div class="column cars">
    <div class="content">
      <img src="/w3images/cars1.jpg" alt="Car" style="width:100%">
      <h4>رetro</h4>
      <p>Lorem ipsum dolor..</p>
    </div>
  </div>
  <div class="column cars">
    <div class="content">
      <img src="/w3images/cars2.jpg" alt="Car" style="width:100%">
      <h4>سرعت</h4>
      <p>Lorem ipsum dolor..</p>
    </div>
  </div>
  <div class="column cars">
    <div class="content">
      <img src="/w3images/cars3.jpg" alt="Car" style="width:100%">
      <h4>کلاسیک</h4>
      <p>Lorem ipsum dolor..</p>
    </div>
  </div>
  <div class="column people">
    <div class="content">
      <img src="/w3images/people1.jpg" alt="People" style="width:100%">
      <h4>دختر</h4>
      <p>Lorem ipsum dolor..</p>
    </div>
  </div>
  <div class="column people">
    <div class="content">
      <img src="/w3images/people2.jpg" alt="People" style="width:100%">
      <h4>مرد</h4>
      <p>Lorem ipsum dolor..</p>
    </div>
  </div>
  <div class="column people">
    <div class="content">
      <img src="/w3images/people3.jpg" alt="People" style="width:100%">
      <h4>زن</h4>
      <p>Lorem ipsum dolor..</p>
    </div>
  </div>
<!-- پایان شبکه -->
</div>

مرحله دوم - اضافه کردن CSS:

* {
  box-sizing: border-box;
}
body {
  background-color: #f1f1f1;
  padding: 20px;
  حاشیه: 20px;
}
font-family: Arial;
/* وب‌سایت را در وسط قرار دهید */
  .main {
  عرض بیش‌ترین: 1000px;
}
حاشیه: خود;
  h1 {
  حجم فونت: 50px;
}
word-break: break-all;
  حاشیه: 8px -16px;
}
/* حاشیه داخلی بین ستون‌ها اضافه کنید (اگر نیاز باشد) */
.row {
.row > .column {
  حاشیه: 8px;
}
/* سه ستون هم‌عرض و مجاور ایجاد کنید */
.column {
  شناور: چپ;
  عرض: 33.33%;
  نمایش: none; /* به صورت پیش‌فرض ستون‌ها مخفی هستند */
}
/* پاکسازی شناور پس از سطر */
.row:after {
  محتوا: "";
  نمایش: table;
  پاکسازی: هر دو;
}
/* محتوا */
.content {
  رنگ پس‌زمینه: سفید;
  حاشیه: 10px;
}
/* کلاس "show" به عناصر فیلتر شده اضافه می‌شود */
.show {
  نمایش: block;
}
/* استایل دکمه‌ها را تنظیم کنید */
.btn {
  پیرامون: هیچ‌چیزی;
  ویرایش: هیچ‌چیزی;
  حاشیه: 12px 16px;
  رنگ پس‌زمینه: سفید;
  مؤشر: pointer;
}
/* در حالت قرارگیری موس روی دکمه رنگ پس‌زمینه خاکستری اضافه کنید */
.btn:hover {
  رنگ پس‌زمینه: #ddd;
}
/* به دکمه‌های فعال رنگ پس‌زمینه تاریک اضافه کنید */
.btn.active {
  رنگ پس‌زمینه: #666;
   رنگ: سفید;
}

مرحله سوم - اضافه کردن JavaScript:

filterSelection("all") // اجرای تابع و نمایش همه ستون‌ها
function filterSelection(c) {
  متغیر x, i;
  x = document.getElementsByClassName("column");
  اگر (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(" ");
}
// به دکمه فعلی کلاس active اضافه کنید (تأکید بر آن)
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";
  });
}

آزمایش کنید

صفحات مرتبط

مستند:چگونه: مجموعه آثار تصویری ایجاد می‌شود