如何创建:带过滤功能的作品集画廊

学习如何创建带筛选功能的作品集画廊。

我的作品集

请点击按钮过滤某一类别:

Mountains
Mountains

Lorem ipsum dolor..

Aurora
Lights

Lorem ipsum dolor..

Nature
Forest

Lorem ipsum dolor..

Car
Classic

Lorem ipsum dolor..

Car
Fast

Lorem ipsum dolor..

Car
Retro

Lorem ipsum dolor..

Car
Girl

Lorem ipsum dolor..

Car
Woman

Lorem ipsum dolor..

Car
Man

Lorem ipsum dolor..

Subukan nang personal

如何创建作品集网站

第一步 - 添加 HTML:

<h2>PORTFOLIO</h2>
<div id="myBtnContainer">
  <button class="btn active" onclick="filterSelection('all')"> Show all</button>
  <button class="btn" onclick="filterSelection('nature')"> Nature</button>
  <button class="btn" onclick="filterSelection('cars')"> Cars</button>
  <button class="btn" onclick="filterSelection('people')"> People</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>
<!-- 结束网格 -->
</div>

第二步 - 添加 CSS:

* {
  box-sizing: border-box;
}
body {
  background-color: #f1f1f1;
  padding: 20px;
  padding: 20px;
}
font-family: Arial;
/* Center the website */
  .main {
  max-width: 1000px;
}
margin: auto;
  h1 {
  font-size: 50px;
}
word-break: break-all;
  margin: 8px -16px;
}
/* Magdagdag ng padding sa pagitan ng bawat column (kung kailangan) */
.row {
.row > .column {
  padding: 8px;
}
/* Buuin ang tatlong magkakasunod na equal-width column */
.column {
  float: left;
  width: 33.33%;
  display: none; /* Default na itinatago ang column */
}
/* Iclear ang floating sa ibabaw ng linya */
.row:after {
  content: "";
  display: table;
  clear: both;
}
/* Content */
.content {
  background-color: white;
  padding: 10px;
}
/* Ang klase "show" ay idinagdag sa pinili na elemento */
.show {
  display: block;
}
/* Set the style of the button */
.btn {
  border: none;
  outline: none;
  padding: 12px 16px;
  background-color: white;
  cursor: pointer;
}
/* Magdagdag ng asul na kulay ng background kapag nasa hover */
.btn:hover {
  background-color: #ddd;
}
/* Magdagdag ng dark na kulay ng background sa aktibong button */
.btn.active {
  background-color: #666;
   color: white;
}

Ikatlong hakbang - Magdagdag ng JavaScript:

filterSelection("all") // I-execute ang function at ipakita ang lahat ng column
function filterSelection(c) {
  var x, i;
  x = document.getElementsByClassName("column");
  kung (c == "all") c = "";
  // Magdagdag ng klase "show" (display:block) sa pinili na elemento at alisin sa hindi pinili na elemento
  for (i = 0; i < x.length; i++) {
    w3RemoveClass(x[i], "show");
    if (x[i].className.indexOf(c) > -1) w3AddClass(x[i], "show");
  }
}
// Ipakita ang mga nilipit na elemento
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];
    }
  }
}
// Itago ang mga hindi napili na elemento
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(" ");
}
// Magdagdag ng aktibong klase sa kasalukuyang button (palakihin ito)
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";
  });
}

Subukan nang personal

Mga pahina na may kaugnayan

Tuturial:如何创建作品集图库