Here is a demo for the Guggenheim.js gallery plugin. Use the controls at the bottom to manipulate the gallery.
The filters are set up so that a character must match each of the different filters set. The team affiliate is demonstrating the optional filtering in that a character just has to be in one of the teams you select. You can set your filters up however you choose, using whatever elements you want. All that matters to guggenheim is how you pass them through. Check out the description of the filter method for more info.
I'm using jQuery to help with collecting the data for the filtering, but you don't need it for the actual plugin, you can use whatever you like. Also, some clarification for the comic fans who may have issue with my classification: first appearance is based off the year and month given on Wikipedia, I still think of Spiderman as being a loner despite him at some point being a member of various teams (Could argue the same about Batman but the Justice League thing is more well known), I don't class a mechanical suit as a super power but being able to build one is pretty bad ass and I'm classing Nightwing's first appearance as the first of the Dick Grayson Nightwing.
All images are from blo0p's Super Hero Poster collection on Deviant Art
Check out the source and usage instructions on GitHub.