Introduction
Isotope: An exquisite jQuery plugin for magical layouts
Features
- Layout modes: Intelligent, dynamic layouts that can’t be achieved with CSS alone.
- Filtering: Hide and reveal item elements easily with jQuery selectors.
- Sorting: Re-order item elements with sorting. Sorting data can be extracted from just about anything.
- Interoperability: features can be utilized together for a cohesive experience.
- Progressive enhancement: Isotope’s animation engine takes advantage of the best browser features when available — CSS transitions and transforms, GPU acceleration — but will also fall back to JavaScript animation for lesser browsers.
Licensing
Commercial use of Isotope requires purchase of one-time license fee per developer seat. Commercial use includes any application that makes you money — portfolio sites, premium templates, etc. Commercial licenses may be purchased at metafizzy.co.
Use in non-commercial and personal applications is free.
Getting started
Isotope requires jQuery 1.4.3 and greater.
Markup
Isotope works on a container element with a group of similar child items.
id="container">
class="item">...
class="item">...
class="item">...
...
Script
$('#container').isotope({
// options
itemSelector : '.item',
layoutMode : 'fitRows'
});
There are a number of options you can specify. Within the options is where you can set the layout mode, filter items, and sort items.
Code repository
This project lives on GitHub at . There you can grab the latest code and download this entire project.
A word about moderation
Isotope enables a wealth of functionality. But just because you can take advantage of its numerous features together, doesn’t mean you necessarily should. For each each feature you implement with Isotope, consider the benefit gained by users, at the cost of another level of complexity to your interface.
Acknowledgments
- for Modernizr (partially used within Isotope)
- for (used within Isotope) and for which clued me in to using jQuery 1.4.3’s CSS hooks
- Jacek Galanciak for jQuery Quicksand, an early kernel of inspiration
- for re-writing the jQuery Plugins/Authoring tutorial and opened my eyes to Plugin Methods pattern
- for his article which provided the architecture for Isotope
- for Infinite Scroll (included with docs), the (included with Isotope), Debounced resize() plugin (provided base for smartresize), and of course Modernizr
- The jQuery UI Team for (used within Isotope)
- Juriy Zaytsev aka “kangax” for getStyleProperty (used within Isotope)