Hur skapar man: Filtrerad portföljgalleri

Lär dig hur man skapar en filtrerad portföljgalleri.

Min portfölj

Klicka på knappen för att filtrera en kategori:

Berger
Berger

Lorem ipsum dolor..

Aurora
Lights

Lorem ipsum dolor..

Naturlighet
Forest

Lorem ipsum dolor..

Bil
Classic

Lorem ipsum dolor..

Bil
Fast

Lorem ipsum dolor..

Bil
Retro

Lorem ipsum dolor..

Bil
Girl

Lorem ipsum dolor..

Bil
Woman

Lorem ipsum dolor..

Bil
Man

Lorem ipsum dolor..

亲自试一试

Hur skapar man en portföljwebbplats

Steg 1 - Lägg till HTML:

<h2>PORTFOLIO</h2>
<div id="myBtnContainer">
  <button class="btn active" onclick="filterSelection('all')">Visa alla</button>
  <button class="btn" onclick="filterSelection('nature')">Natur</button>
  <button class="btn" onclick="filterSelection('cars')">Bilar</button>
  <button class="btn" onclick="filterSelection('people')">Människor</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>
<!-- Avsluta nätverk -->
</div>

Steg 2 - Lägg till CSS:

* {
  box-sizing: border-box;
}
body {
  background-color: #f1f1f1;
  padding: 20px;
  padding: 20px;
}
font-family: Arial;
/* Centrera webbplatsen */
  .main {
  max-width: 1000px;
}
margin: auto;
  h1 {
  font-size: 50px;
}
word-break: break-all;
  margin: 8px -16px;
}
/* Lägg till inre marginaler mellan kolumnerna (om nödvändigt) */
.row {
.row > .column {
  padding: 8px;
}
/* Skapa tre breda kolumner som är breda och nära varandra */
.column {
  float: left;
  width: 33.33%;
  display: none; /* Standard: dölj kolumnerna */
}
/* Rensa flödet efter raden */
.row:after {
  content: "";
  display: table;
  clear: both;
}
/* Innehåll */
.content {
  background-color: white;
  padding: 10px;
}
/* Lägg till "show"-klassen till de filtrerade elementen */
.show {
  display: block;
}
/* Ställ in stilen för knappen */
.btn {
  border: none;
  outline: none;
  padding: 12px 16px;
  background-color: white;
  cursor: pointer;
}
/* Lägg till grå bakgrundsfärg när musen hålls över */
.btn:hover {
  background-color: #ddd;
}
/* Lägg till mörk bakgrundsfärg till aktiv knappen */
.btn.active {
  background-color: #666;
   color: white;
}

Tredje steg - Lägg till JavaScript:

filterSelection("all") // Kör funktionen och visa alla kolumner
function filterSelection(c) {
  var x, i;
  x = document.getElementsByClassName("column");
  om (c == "all") c = "";
  // Lägg till klassen "show" (display:block) till de filtrerade elementen och ta bort "show"-klassen från de inte valda 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";
  });
}

亲自试一试

相关页面

教程:Hur man skapar: portfölj bibliotek