<div class="button-group filters-button-group">
<button class="button is-checked" data-filter="*">all</button>
<button class="button" data-filter=".beach">beach</button>
<button class="button" data-filter=".bird">bird</button>
<button class="button" data-filter=".boat">boat</button>
<button class="button" data-filter=".lighthouse">lighthouse</button>
<button class="button" data-filter=".people">people</button>
<button class="button" data-filter=".rock">rock</button>
<button class="button" data-filter=".sea">sea</button>
</div>
<section id="grid-container" class="transitions-enabled fluid masonry js-masonry grid">
<article class="beach people sea">
<img src="https://cdn2.hubspot.net/hub/322787/hubfs/MYCHEFCOM/hackathon/photos-gallery/beach1.jpg" class="img-responsive" />
</article>
<article class="beach bird">
<img src="https://cdn2.hubspot.net/hub/322787/hubfs/MYCHEFCOM/hackathon/photos-gallery/bird3.jpg" class="img-responsive" />
</article>
<article class="sea">
<img src="https://cdn2.hubspot.net/hub/322787/hubfs/MYCHEFCOM/hackathon/photos-gallery/sea2.jpg" class="img-responsive" />
</article>
<article class="beach people rock sea">
<img src="https://cdn2.hubspot.net/hub/322787/hubfs/MYCHEFCOM/hackathon/photos-gallery/beach2.jpg" class="img-responsive" />
</article>
<article class="beach sea">
<img src="https://cdn2.hubspot.net/hub/322787/hubfs/MYCHEFCOM/hackathon/photos-gallery/beach3.jpg" class="img-responsive" />
</article>
<article class="bird">
<img src="https://cdn2.hubspot.net/hub/322787/hubfs/MYCHEFCOM/hackathon/photos-gallery/bird1.jpg" class="img-responsive" />
</article>
<article class="bird">
<img src="https://cdn2.hubspot.net/hub/322787/hubfs/MYCHEFCOM/hackathon/photos-gallery/bird2.jpg" class="img-responsive" />
</article>
<article class="sea">
<img src="https://cdn2.hubspot.net/hub/322787/hubfs/MYCHEFCOM/hackathon/photos-gallery/sea4.jpg" class="img-responsive" />
</article>
<article class="lighthouse rock sea">
<img src="https://cdn2.hubspot.net/hub/322787/hubfs/MYCHEFCOM/hackathon/photos-gallery/lighthouse1.jpg" class="img-responsive" />
</article>
<article class="boat">
<img src="https://cdn2.hubspot.net/hub/322787/hubfs/MYCHEFCOM/hackathon/photos-gallery/boat2.jpg" class="img-responsive" />
</article>
<article class="lighthouse sea">
<img src="https://cdn2.hubspot.net/hub/322787/hubfs/MYCHEFCOM/hackathon/photos-gallery/lighthouse2.jpg" class="img-responsive" />
</article>
<article class="beach people">
<img src="https://cdn2.hubspot.net/hub/322787/hubfs/MYCHEFCOM/hackathon/photos-gallery/people1.jpg" class="img-responsive" />
</article>
<article class="rock sea">
<img src="https://cdn2.hubspot.net/hub/322787/hubfs/MYCHEFCOM/hackathon/photos-gallery/rock3.jpg" class="img-responsive" />
</article>
<article class="boat lighthouse sea">
<img src="https://cdn2.hubspot.net/hub/322787/hubfs/MYCHEFCOM/hackathon/photos-gallery/boat1.jpg" class="img-responsive" />
</article>
<article class="boat sea">
<img src="https://cdn2.hubspot.net/hub/322787/hubfs/MYCHEFCOM/hackathon/photos-gallery/sea1.jpg" class="img-responsive" />
</article>
<article class="rock sea">
<img src="https://cdn2.hubspot.net/hub/322787/hubfs/MYCHEFCOM/hackathon/photos-gallery/rock2.jpg" class="img-responsive" />
</article>
<article class="beach">
<img src="https://cdn2.hubspot.net/hub/322787/hubfs/MYCHEFCOM/hackathon/photos-gallery/beach4.jpg" class="img-responsive" />
</article>
<article class="rock sea">
<img src="https://cdn2.hubspot.net/hub/322787/hubfs/MYCHEFCOM/hackathon/photos-gallery/sea3.jpg" class="img-responsive" />
</article>
<article class="people rock sea">
<img src="https://cdn2.hubspot.net/hub/322787/hubfs/MYCHEFCOM/hackathon/photos-gallery/rock1.jpg" class="img-responsive" />
</article>
</section>
.button {
display: inline-block;
padding: 0.5em 1.0em;
border-radius: 4px;
background: #ffffff;
font-family: sans-serif;
font-size: 16px;
cursor: pointer;
border: 1px solid #000000;
margin: 10px;
-webkit-transition: background 0.3s;
-moz-transition: background 0.3s;
transition: background 0.3s;
}
.button:hover {
background-color: rgba(0,0,0,0.1);
}
.button:active,
.button.is-checked {
background-color: rgba(0,0,0,0.1);
outline: none;
}
.button-group {
margin: 20px 0;
text-align: center;
}
.button-group:after {
content: '';
display: block;
clear: both;
}
img {
vertical-align: middle;
}
.img-responsive {
display: block;
max-width: 100%;
height: auto;
}
.grid article {
background-color: #FFFFFF;
display: block;
float: left;
margin: 1%;
width: 23%;
}
@media (max-width: 1024px) {
.grid article {
width: 31.3%;
}
}
@media (max-width: 767px) {
.grid article {
width: 48%;
}
}
@media (max-width: 479px) {
.grid article {
margin: 2% 0;
width: 100%;
}
}
$( function() {
var $grid = $('.grid').isotope({
itemSelector: 'article'
});
// filter buttons
$('.filters-button-group').on( 'click', 'button', function() {
var filterValue = $( this ).attr('data-filter');
$grid.isotope({ filter: filterValue });
});
$('.button-group').each( function( i, buttonGroup ) {
var $buttonGroup = $( buttonGroup );
$buttonGroup.on( 'click', 'button', function() {
$buttonGroup.find('.is-checked').removeClass('is-checked');
$( this ).addClass('is-checked');
});
});
});
// debounce so filtering doesn't happen every millisecond
function debounce( fn, threshold ) {
var timeout;
return function debounced() {
if ( timeout ) {
clearTimeout( timeout );
}
function delayed() {
fn();
timeout = null;
}
timeout = setTimeout( delayed, threshold || 100 );
}
}
$(window).bind("load", function() {
$('#all').click();
});
This Pen doesn't use any external CSS resources.