Bagaimana membuat: koleksi kerja galleri dengan fitur filter

Belajar bagaimana membuat koleksi kerja galleri dengan fitur filter.

Koleksi kerja saya

Klik tombol untuk menyaring kategori yang satu:

Puncak
Puncak

Lorem ipsum dolor..

Aurora
Lampu

Lorem ipsum dolor..

Alam
Hutan

Lorem ipsum dolor..

Mobil
Klasik

Lorem ipsum dolor..

Mobil
Cepat

Lorem ipsum dolor..

Mobil
Retro

Lorem ipsum dolor..

Mobil
gadis

Lorem ipsum dolor..

Mobil
Wanita

Lorem ipsum dolor..

Mobil
Pria

Lorem ipsum dolor..

Coba sendiri

Bagaimana membuat situs koleksi kerja

Langkah pertama - Tambahkan HTML:

<h2>PORTFOLIO</h2>
<div id="myBtnContainer">
  <button class="btn active" onclick="filterSelection('all')">Tampilkan Semua</button>
  <button class="btn" onclick="filterSelection('nature')">Alam</button>
  <button class="btn" onclick="filterSelection('cars')">Mobil</button>
  <button class="btn" onclick="filterSelection('people')">Orang</button>
</div>
<!-- 作品集画廊网格 -->
<div class="row">
  <div class="column nature">
    <div class="content">
      <img src="/w3images/mountains.jpg" alt="Mountains" style="width:100%">
      <h4>Bukit</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>Lampu</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>Hutan</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>Retro</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>Depan</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>Classic</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>Perempuan</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>Man</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>Wanita</h4>
      <p>Lorem ipsum dolor..</p>
    </div>
  </div>
<!-- Akhir grid -->
</div>

Langkah kedua - Tambahkan CSS:

* {
  box-sizing: border-box;
}
body {
  background-color: #f1f1f1;
  padding: 20px;
  padding: 20px;
}
font-family: Arial;
/* Menengahkan situs web */
  .main {
  max-width: 1000px;
}
margin: auto;
  h1 {
  font-size: 50px;
}
word-break: break-all;
  margin: 8px -16px;
}
/* Menambahkan margin dalam antara setiap kolom (jika diperlukan) */
.row {
.row > .column {
  padding: 8px;
}
/* Membuat tiga kolom yang berdekatan dan sama tinggi */
.column {
  float: left;
  width: 33.33%;
  display: none; /* Default: menutup kolom */
}
/* Membersihkan floating setelah baris */
.row:after {
  content: "";
  display: table;
  clear: both;
}
/* Konten */
.content {
  background-color: white;
  padding: 10px;
}
/* Kelas 'show' ditambahkan ke elemen yang disaring */
.show {
  display: block;
}
/* Menata gaya tombol */
.btn {
  border: none;
  outline: none;
  padding: 12px 16px;
  background-color: white;
  cursor: pointer;
}
/* Menambahkan warna latar belakang abu-abu saat mouse bergerak di atas */
.btn:hover {
  background-color: #ddd;
}
/* Menambahkan warna latar belakang yang gelap untuk tombol yang aktif */
.btn.active {
  background-color: #666;
   color: white;
}

Langkah ketiga - Menambahkan JavaScript:

filterSelection("all") // Melaksanakan fungsi dan menampilkan semua kolom
function filterSelection(c) {
  var x, i;
  x = document.getElementsByClassName("column");
  if (c == "all") c = "";
  // Menambahkan kelas 'show' (display:block) ke elemen yang disaring, dan menghapus kelas 'show' dari elemen yang belum dipilih
  for (i = 0; i < x.length; i++) {
    w3RemoveClass(x[i], "show");
    if (x[i].className.indexOf(c) > -1) w3AddClass(x[i], "show");
  }
}
// Tampilkan elemen yang disaring
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];
    }
  }
}
// Sembunyikan elemen yang belum dipilih
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(" ");
}
// Menambahkan kelas aktif ke tombol saat ini (menonjolkan nya)
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";
  });
}

Coba sendiri

Halaman yang berhubungan

Tutorial:Bagaimana untuk membuat Galeri Koleksi Kerja