Wie erstellt man: Eine Galerie mit Filterfunktion

Lernen Sie, wie man eine Galerie mit Filterfunktion erstellt.

Meine Werksamkeit

Klicken Sie auf die Schaltfläche, um eine Kategorie zu filtern:

Berge
Berge

Lorem ipsum dolor..

Aurora
Lichter

Lorem ipsum dolor..

Natur
Wald

Lorem ipsum dolor..

Auto
Klassisch

Lorem ipsum dolor..

Auto
Schnell

Lorem ipsum dolor..

Auto
Retro

Lorem ipsum dolor..

Auto
Mädchen

Lorem ipsum dolor..

Auto
Frau

Lorem ipsum dolor..

Auto
Mann

Lorem ipsum dolor..

亲自试一试

Wie erstellt man eine Werksamkeit-Website

Schritt 1 - HTML hinzufügen:

<h2>PORTFOLIO</h2>
<div id="myBtnContainer">
  <button class="btn active" onclick="filterSelection('all')"> Alle anzeigen</button>
  <button class="btn" onclick="filterSelection('nature')"> Natur</button>
  <button class="btn" onclick="filterSelection('cars')"> Autos</button>
  <button class="btn" onclick="filterSelection('people')"> Menschen</button>
</div>
<!-- Werksamkeitsgalerie-Netzwerk -->
<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>
<!-- Ende des Gitters -->
</div>

Zweiter Schritt - CSS hinzufügen:

* {
  box-sizing: border-box;
}
body {
  background-color: #f1f1f1;
  padding: 20px;
  font-family: Arial;
}
/* Zentrieren Sie die Website */
.main {
  max-width: 1000px;
  margin: auto;
}
h1 {
  font-size: 50px;
  word-break: break-all;
}
.row {
  margin: 8px -16px;
}
/* Fügen Sie zwischen den Spalten einen Innenabstand hinzu (wenn erforderlich) */
.row,
.row > .column {
  padding: 8px;
}
/* Erstellen Sie drei nebeneinander liegende gleich breite Spalten */
.column {
  float: left;
  width: 33.33%;
  display: none; /* Standardmäßig Spalten ausblenden */
}
/* Entfernen Sie den float nach der Zeile */
.row:after {
  content: "";
  display: table;
  clear: both;
}
/* Inhalt */
.content {
  background-color: white;
  padding: 10px;
}
/* Die Klasse "show" wird zu den gefilterten Elementen hinzugefügt */
.show {
  display: block;
}
/* Setzen Sie das Stil der Schaltfläche */
.btn {
  border: none;
  outline: none;
  padding: 12px 16px;
  background-color: white;
  cursor: pointer;
}
/* Fügen Sie bei der Mausüberlagerung eine graue Hintergrundfarbe hinzu */
.btn:hover {
  background-color: #ddd;
}
/* Fügen Sie der aktiven Schaltfläche eine dunkle Hintergrundfarbe hinzu */
.btn.active {
  background-color: #666;
   color: white;
}

Dritter Schritt - Fügen Sie JavaScript hinzu:

filterSelection("all") // Führen Sie die Funktion aus und zeigen Sie alle Spalten an
function filterSelection(c) {
  var x, i;
  x = document.getElementsByClassName("column");
  if (c == "all") c = "";
  // Fügen Sie der Klasse "show" (display:block) zu den gefilterten Elementen hinzu und entfernen Sie "show" aus den nicht ausgewählten Elementen
  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(" ");
}
// 将活动类添加到当前按钮(突出显示它)
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";
  });
}

亲自试一试

相关页面

教程:Wie kann man die Galerie erstellen