Belajar cara membuat Image Grid.
Section Artikel
Image Grid
Belajar cara membuat galeri gambar yang bervariasi antara empat, dua atau gambar lebar penuh dengan satu klik tombol.
Contoh:
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <style> * { box-sizing: border-box; } body { margin: 0; font-family: Arial, Helvetica, sans-serif; } .header { text-align: center; padding: 32px; } .row { display: -ms-flexbox; /* IE 10 */ display: flex; -ms-flex-wrap: wrap; /* IE 10 */ flex-wrap: wrap; padding: 0 4px; } .column { -ms-flex: 50%; /* IE 10 */ flex: 50%; padding: 0 4px; } .column img { margin-top: 8px; vertical-align: middle; } .btn { border: none; outline: none; padding: 10px 16px; background-color: #f1f1f1; cursor: pointer; font-size: 18px; } .btn:hover { background-color: #ddd; } .btn.active { background-color: #666; color: white; } </style> </head> <body> <!-- Header --> <div class="header" id="myHeader"> <h1>Image Grid</h1> <p>Click on the buttons to change the grid view.</p> <button class="btn" onclick="one()">1</button> <button class="btn active" onclick="two()">2</button> <button class="btn" onclick="four()">4</button> </div> <!-- Photo Grid --> <div class="row"> <div class="column"> <img src="/w3images/wedding.jpg" style="width:100%"> <img src="/w3images/rocks.jpg" style="width:100%"> <img src="/w3images/falls2.jpg" style="width:100%"> <img src="/w3images/paris.jpg" style="width:100%"> <img src="/w3images/nature.jpg" style="width:100%"> <img src="/w3images/mist.jpg" style="width:100%"> <img src="/w3images/paris.jpg" style="width:100%"> </div> <div class="column"> <img src="/w3images/underwater.jpg" style="width:100%"> <img src="/w3images/ocean.jpg" style="width:100%"> <img src="/w3images/wedding.jpg" style="width:100%"> <img src="/w3images/mountainskies.jpg" style="width:100%"> <img src="/w3images/rocks.jpg" style="width:100%"> <img src="/w3images/underwater.jpg" style="width:100%"> </div> <div class="column"> <img src="/w3images/wedding.jpg" style="width:100%"> <img src="/w3images/rocks.jpg" style="width:100%"> <img src="/w3images/falls2.jpg" style="width:100%"> <img src="/w3images/paris.jpg" style="width:100%"> <img src="/w3images/nature.jpg" style="width:100%"> <img src="/w3images/mist.jpg" style="width:100%"> <img src="/w3images/paris.jpg" style="width:100%"> </div> <div class="column"> <img src="/w3images/underwater.jpg" style="width:100%"> <img src="/w3images/ocean.jpg" style="width:100%"> <img src="/w3images/wedding.jpg" style="width:100%"> <img src="/w3images/mountainskies.jpg" style="width:100%"> <img src="/w3images/rocks.jpg" style="width:100%"> <img src="/w3images/underwater.jpg" style="width:100%"> </div> </div> <script> var elements = document.getElementsByClassName("column"); var i; function one() { for (i = 0; i < elements.length; i++) { elements[i].style.msFlex = "100%"; // IE10 elements[i].style.flex = "100%"; } } function two() { for (i = 0; i < elements.length; i++) { elements[i].style.msFlex = "50%"; // IE10 elements[i].style.flex = "50%"; } } function four() { for (i = 0; i < elements.length; i++) { elements[i].style.msFlex = "25%"; // IE10 elements[i].style.flex = "25%"; } } var header = document.getElementById("myHeader"); var btns = header.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"; }); } </script> </body> </html>
Membuat Image Grid
Langkah 1) Tambahkan HTML
Contoh:
<div class="row"> <div class="column"> <img src="wedding.jpg"> <img src="rocks.jpg"> <img src="falls2.jpg"> <img src="paris.jpg"> <img src="nature.jpg"> <img src="mist.jpg"> <img src="paris.jpg"> </div> <div class="column"> <img src="underwater.jpg"> <img src="ocean.jpg"> <img src="wedding.jpg"> <img src="mountainskies.jpg"> <img src="rocks.jpg"> <img src="underwater.jpg"> </div> <div class="column"> <img src="wedding.jpg"> <img src="rocks.jpg"> <img src="falls2.jpg"> <img src="paris.jpg"> <img src="nature.jpg"> <img src="mist.jpg"> <img src="paris.jpg"> </div> <div class="column"> <img src="underwater.jpg"> <img src="ocean.jpg"> <img src="wedding.jpg"> <img src="mountainskies.jpg"> <img src="rocks.jpg"> <img src="underwater.jpg"> </div> </div>
Langkah 2) Tambahkan CSS
Gunakan CSS Flexbox untuk membuat layout
Contoh:
.row { display: flex; flex-wrap: wrap; padding: 0 4px; } /* Create two equal columns that sits next to each other */ .column { flex: 50%; padding: 0 4px; } .column img { margin-top: 8px; vertical-align: middle; }
Langkah 3) Tambahkan JavaScript
Buat Tampilan Grid Controllable Menggunakan JavaScript
Contoh:
<button onclick="one()">1</button> <button onclick="two()">2</button> <button onclick="four()">4</button> <script> // Dapatkan elemen dengan class = "column" var elements = document.getElementsByClassName("column"); // Deklarasikan variabel "loop" var i; // Gambar lebar penuh function one() { for (i = 0; i < elements.length; i++) { elements[i].style.flex = "100%"; } } // Dua gambar bersebelahan function two() { for (i = 0; i < elements.length; i++) { elements[i].style.flex = "50%"; } } // Empat gambar berdampingan function four() { for (i = 0; i < elements.length; i++) { elements[i].style.flex = "25%"; } } </script>