"gallery filter"
Bootstrap 3.3.0 Snippet by Rajnesh Prajapati

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/js/bootstrap.min.js"></script>
<script src="//code.jquery.com/jquery-1.11.1.min.js"></script>
<!------ Include the above in your HEAD tag ---------->
<div class="container">
<div class="row" style=" margin:20px">
<div class="col-xs-12">
<button class="btn btn-small btn-danger" data-toggle="portfilter" data-target="all">
All
</button>
<button class="btn btn-small btn-danger" data-toggle="portfilter" data-target="art">
Websites
</button>
<button class="btn btn-small btn-danger" data-toggle="portfilter" data-target="media">
Brochures
</button>
<button class="btn btn-small btn-danger" data-toggle="portfilter" data-target="brand">
Logo design / Brand Collaterals
</button>
</div>
</div>
<div class="col-md-4" data-tag='brand'>
<img src="http://placehold.it/450x250" class="img-responsive" alt="img">
</div>
<div class="col-md-4" data-tag='media'>
<img src="http://placehold.it/450x250" class="img-responsive" alt="img">
</div>
<div class="col-md-4" data-tag='art'>
<img src="http://placehold.it/450x250" class="img-responsive" alt="img">
</div>
<div class="col-md-4" data-tag='art'>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1
2
3
4
5
6
/* ============================================================
* bootstrap-portfilter.js for Bootstrap v2.3.1
* https://github.com/geedmo/portfilter
* ============================================================*/
!function(d){var c="portfilter";var b=function(e){this.$element=d(e);this.stuff=d("[data-tag]");this.target=this.$element.data("target")||""};b.prototype.filter=function(g){var e=[],f=this.target;this.stuff.fadeOut("fast").promise().done(function(){d(this).each(function(){if(d(this).data("tag")==f||f=="all"){e.push(this)}});d(e).show()})};var a=d.fn[c];d.fn[c]=function(e){return this.each(function(){var g=d(this),f=g.data(c);if(!f){g.data(c,(f=new b(this)))}if(e=="filter"){f.filter()}})};d.fn[c].defaults={};d.fn[c].Constructor=b;d.fn[c].noConflict=function(){d.fn[c]=a;return this};d(document).on("click.portfilter.data-api","[data-toggle^=portfilter]",function(f){d(this).portfilter("filter")})}(window.jQuery);
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Related: See More


Questions / Comments:

Awesome snippet, I love it! I'm using it on a site I'm working on now to sort a gallery by tags. One thing though, it doesn't currently handle an item having more than one data-tag. i.e. in this example if you had an image that shows both a logo design AND a brochure, how do you make it appear when EITHER button is pressed? Anyone got ideas on how to tweak it?

Rachel Dunlop () - 8 years ago - Reply 0