• Stars
    star
    138
  • Rank 264,508 (Top 6 %)
  • Language
    JavaScript
  • Created about 12 years ago
  • Updated over 9 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

PerfectMasonry extension for Isotope

PerfectMasonry extension for Isotope

Extension for creating perfect masonry layouts with Isotope 1.x. Now even with pixel perfect liquid layouts!

Prerequisites

Usage

  1. Include perfectMasonry just after jQuery and Isotope.
<script src="js/jquery.isotope.perfectmasonry.js"></script>
  1. Define Isotope's layout mode to perfectMasonry
$('#tiles').isotope({
    layoutMode: "perfectMasonry"
});
  1. You're all set

Options

....
layoutMode: "perfectMasonry",
perfectMasonry: {
    layout: "vertical",      // Set layout as vertical/horizontal (default: vertical)
    columnWidth: 200,        // Set/prefer specific column width (liquid layout tries to prefer said width)
    rowHeight: 200,          // Set/prefer specific row height (liquid layout tries to prefer said height)
    
    liquid: true,            // Set layout as liquid (default: false)
    cols: 3,                 // Force to have x columns (default: null)
    rows: 3,                 // Force to have y rows (default: null)
    minCols: 3,              // Set min col count (default: 1)
    minRows: 3,              // Set min row count (default: 1)
    maxCols: 5,              // Set max col count (default: 9999)
    maxRows: 4               // Set max row count (default: 9999)
}

Halp!

There are huge gaps between my tiles

The way Isotope works is that if you don't provide a desired column width/row height for it, it just grabs the first tile and assumes dimensions from that element. So, if you end up with severe case of them gaps, the first element is probably bigger than the rest. In such cases providing the desired options should get rid of the symptoms.

Like so:

$('#tiles').isotope({
    layoutMode: "perfectMasonry",
    perfectMasonry: {
        columnWidth: 200,
        rowHeight: 200
    }
});

Licensing

Use in commercial and personal applications is free.

Note: Isotope has it's own licesing. Read more at: http://isotope.metafizzy.co/

Changelog

View the commit history for a complete robust list of changes to the script.

  • v1.2 2013-03-07

    • Added the capability for horizontal layouts
    • Added liquid layouts with variable tile sizes, plus some extra options for liquid layouts
  • v1.1 2013-08-02

    • Row height definitions for non-square tiles
    • Container now has width defined, so that it can be centered by CSS (margin auto)
  • v1.0 2012-11-13

    • Public release