Hvordan opretter man: En portefølje med filterfunktion

Lær at oprette en filterfunktion i en portefølje

Min portefølje

Klik på knappen for at filtrere en kategori:

Bjerge
Bjerge

Lorem ipsum dolor..

Aurora
Lys

Lorem ipsum dolor..

Nature
Skov

Lorem ipsum dolor..

Bil
Klassisk

Lorem ipsum dolor..

Bil
Hurtig

Lorem ipsum dolor..

Bil
Retro

Lorem ipsum dolor..

Bil
Pige

Lorem ipsum dolor..

Bil
Kvinde

Lorem ipsum dolor..

Bil
Mand

Lorem ipsum dolor..

Prøv det selv

Hvordan opretter man en portefølje

Første trin - Tilføj HTML:

<h2>PORTFOLIO</h2>
<div id="myBtnContainer">
  <button class="btn active" onclick="filterSelection('all')">Vis alle</button>
  <button class="btn" onclick="filterSelection('nature')">Natur</button>
  <button class="btn" onclick="filterSelection('cars')">Biler</button>
  <button class="btn" onclick="filterSelection('people')">Mennesker</button>
</div>
<!-- 作品集画廊网格 -->
<div class="row">
  <div class="column nature">
    <div class="content">
      <img src="/w3images/mountains.jpg" alt="Mountains" style="width:100%">
      <h4>Bjerge</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>Lys</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>Skov</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>Hurtig</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>Classisk</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>Pige</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>Mand</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>Kvinde</h4>
      <p>Lorem ipsum dolor..</p>
    </div>
  </div>
<!-- Afslut netværk -->
</div>

Første trin - Tilføj CSS:

* {
  box-sizing: border-box;
}
body {
  background-color: #f1f1f1;
  padding: 20px;
  padding: 20px;
}
font-family: Arial;
/* Centrer hjemmesiden */
  .main {
  max-width: 1000px;
}
margin: auto;
  h1 {
  font-size: 50px;
}
word-break: break-all;
  margin: 8px -16px;
}
/* Tilføj indre margin mellem kolonner (hvis nødvendigt) */
.row {
.row > .column {
  padding: 8px;
}
/* Opret tre side om side kolonner */
.column {
  float: left;
  width: 33.33%;
  display: none; /* Standardvis skjult kolonner */
}
/* Ryd op efter rækkeens flydende elementer */
.row:after {
  content: "";
  display: table;
  clear: both;
}
/* Indhold */
.content {
  background-color: white;
  padding: 10px;
}
/* "show" klassen tilføjes til de filtrerede elementer */
.show {
  display: block;
}
/* Indstil knapstil */
.btn {
  border: none;
  outline: none;
  padding: 12px 16px;
  background-color: white;
  cursor: pointer;
}
/* Tilføj grå baggrundsfarve ved muspeksling */
.btn:hover {
  background-color: #ddd;
}
/* Tilføj mørk baggrundsfarve til aktiv knap */
.btn.active {
  background-color: #666;
   color: white;
}

Tredje trin - Tilføj JavaScript:

filterSelection("all") // Udfør funktionen og vis alle kolonner
function filterSelection(c) {
  var x, i;
  x = document.getElementsByClassName("column");
  hvis (c == "all") c = "";
  // Tilføj klassen "show" (display:block) til de filtrerede elementer og fjern "show" klassen fra de ikke-valgte elementer
  for (i = 0; i < x.length; i++) {
    w3RemoveClass(x[i], "show");
    if (x[i].className.indexOf(c) > -1) w3AddClass(x[i], "show");
  }
}
// Vis filtrerede elementer
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];
    }
  }
}
// Skjul de ikke valgte elementer
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(" ");
}
// Tilføj aktiv klasse til den aktuelle knap (fremhæv den)
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";
  });
}

Prøv det selv

Relaterede sider

Instruktioner:Hvordan opprette: Verksgalleri bibliotek