Cách tạo: Thư viện hình ảnh portfolio có tính năng lọc

Học cách tạo thư viện hình ảnh portfolio có tính năng lọc.

Portfolio của tôi

Vui lòng nhấn nút để lọc một loại:

Núi non
Núi non

Lorem ipsum dolor..

Hào quang băng băng
Ánh sáng

Lorem ipsum dolor..

Tự nhiên
Rừng

Lorem ipsum dolor..

Xe
Classics

Lorem ipsum dolor..

Xe
Nhanh

Lorem ipsum dolor..

Xe
Retro

Lorem ipsum dolor..

Xe
Gái

Lorem ipsum dolor..

Xe
Nữ

Lorem ipsum dolor..

Xe
Nam

Lorem ipsum dolor..

Thử ngay

Hướng dẫn tạo trang web portfolio

Bước 1 - Thêm HTML:

<h2>PORTFOLIO</h2>
<div id="myBtnContainer">
  <button class="btn active" onclick="filterSelection('all')">Hiển thị tất cả</button>
  <button class="btn" onclick="filterSelection('nature')">Nature</button>
  <button class="btn" onclick="filterSelection('cars')">Xe</button>
  <button class="btn" onclick="filterSelection('people')">Người</button>
</div>
<!-- 作品集画廊网格 -->
<div class="row">
  <div class="column nature">
    <div class="content">
      <img src="/w3images/mountains.jpg" alt="Mountains" style="width:100%">
      <h4>Mountains</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>Lights</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>Forest</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>Fast</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>Girl</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>Woman</h4>
      <p>Lorem ipsum dolor..</p>
    </div>
  </div>
<!-- Kết thúc lưới -->
</div>

Bước 2 - Thêm CSS:

* {
  box-sizing: border-box;
}
body {
  background-color: #f1f1f1;
  padding: 20px;
  font-family: Arial;
}
/* Trung tâm hóa trang web */
.main {
  max-width: 1000px;
  margin: auto;
}
h1 {
  font-size: 50px;
  word-break: break-all;
}
.row {
  margin: 8px -16px;
}
/* Thêm lề trong giữa các cột (nếu cần) */
.row,
.row > .column {
  padding: 8px;
}
/* Tạo ba cột ngang bằng nhau và bên cạnh nhau */
.column {
  float: left;
  width: 33.33%;
  display: none; /* Ẩn cột mặc định */
}
/* Xóa浮动 sau dòng */
.row:after {
  content: "";
  display: table;
  clear: both;
}
/* Nội dung */
.content {
  background-color: white;
  padding: 10px;
}
/* Lớp "show" được thêm vào các phần tử được lọc */
.show {
  display: block;
}
/* Đặt樣式 cho nút */
.btn {
  border: none;
  outline: none;
  padding: 12px 16px;
  background-color: white;
  cursor: pointer;
}
/* Thêm màu nền xám khi chuột trỏ vào */
.btn:hover {
  background-color: #ddd;
}
/* Thêm màu nền đậm cho nút hoạt động */
.btn.active {
  background-color: #666;
   color: white;
}

Bước 3 - Thêm JavaScript:

filterSelection("all") // Chạy hàm và hiển thị tất cả các cột
function filterSelection(c) {
  var x, i;
  x = document.getElementsByClassName("column");
  if (c == "all") c = "";
  // Thêm lớp "show" (display:block) vào các phần tử được lọc và xóa lớp "show" ở các phần tử không được chọn
  for (i = 0; i < x.length; i++) {
    w3RemoveClass(x[i], "show");
    if (x[i].className.indexOf(c) > -1) w3AddClass(x[i], "show");
  }
}
// Hiển thị các phần tử đã lọc
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];
    }
  }
}
// Ẩn các phần tử chưa được chọn
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(" ");
}
// Thêm lớp hoạt động vào nút hiện tại (tạo nổi bật)
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";
  });
}

Thử ngay

Trang liên quan

Hướng dẫn:Cách tạo thư viện hình ảnh tác phẩm