
Mountains
Lorem ipsum dolor..
Apprenez à créer une galerie de portfolio avec fonction de filtrage.
Cliquez sur le bouton pour filtrer une catégorie :
Lorem ipsum dolor..
Lorem ipsum dolor..
Lorem ipsum dolor..
Lorem ipsum dolor..
Lorem ipsum dolor..
Lorem ipsum dolor..
Lorem ipsum dolor..
Lorem ipsum dolor..
Lorem ipsum dolor..
<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> <!-- Galerie de portfolio en grille --> <div class="row"> <div class="column nature"> <div class="content"> <img src="/w3images/mountains.jpg" alt="Montagnes" style="width:100%"> <h4>Montagnes</h4> <p>Lorem ipsum dolor..</p> </div> </div> <div class="column nature"> <div class="content"> <img src="/w3images/lights.jpg" alt="Lumières" style="width:100%"> <h4>Lumières</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>Forêt</h4> <p>Lorem ipsum dolor..</p> </div> </div> <div class="column cars"> <div class="content"> <img src="/w3images/cars1.jpg" alt="Voiture" style="width:100%"> <h4>Rétro</h4> <p>Lorem ipsum dolor..</p> </div> </div> <div class="column cars"> <div class="content"> <img src="/w3images/cars2.jpg" alt="Voiture" style="width:100%"> <h4> Rapide</h4> <p>Lorem ipsum dolor..</p> </div> </div> <div class="column cars"> <div class="content"> <img src="/w3images/cars3.jpg" alt="Voiture" style="width:100%"> <h4>Classique</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>Fille</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>Homme</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>Femme</h4> <p>Lorem ipsum dolor..</p> </div> </div> <!-- Fin de la grille --> </div>
* { box-sizing: border-box; } body { background-color: #f1f1f1; padding: 20px; padding: 20px; } font-family: Arial; /* Centrer le site */ .main { max-width: 1000px; } margin: auto; h1 { font-size: 50px; } word-break: break-all; margin: 8px -16px; } /* Ajouter une marge interne entre les colonnes (si nécessaire) */ .row { .row > .column { padding: 8px; } /* Créer trois colonnes adjacentes égales */ .column { float: left; width: 33.33%; display: none; /* Masquer les colonnes par défaut */ } /* Nettoyer le flot après la ligne */ .row:after { content: ""; display: table; clear: both; } /* Contenu */ .content { background-color: white; padding: 10px; } /* La classe "show" est ajoutée aux éléments filtrés */ .show { display: block; } /* Définir le style des boutons */ .btn { border: none; outline: none; padding: 12px 16px; background-color: white; cursor: pointer; } /* Ajouter une couleur de fond grise au survol de la souris */ .btn:hover { background-color: #ddd; } /* Ajouter une couleur de fond sombre à la bouton actif */ .btn.active { background-color: #666; color: white; }
filterSelection("all") // Exécuter la fonction et afficher toutes les colonnes function filterSelection(c) { var x, i; x = document.getElementsByClassName("column"); if (c == "all") c = ""; // Ajouter la classe "show" (display:block) aux éléments filtrés et supprimer la classe "show" des éléments non sélectionnés for (i = 0; i < x.length; i++) { w3RemoveClass(x[i], "show"); if (x[i].className.indexOf(c) > -1) w3AddClass(x[i], "show"); } } // Afficher les éléments filtrés 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]; } } } // Cacher les éléments non sélectionnés 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(" "); } // Ajouter la classe active au bouton courant (mise en évidence) 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"; }); }
Tutoriel :Comment créer la bibliothèque de portfolio des œuvres