DrewDahlman / Mason

Mason.js for creating a perfect grid with jQuery.
http://masonjs.com/
MIT License
1.22k stars 184 forks source link

forthebadge

MasonJS

Mason.js is a jQuery plugin that allows you to create a perfect grid of elements.

This is not Masonry, or Isotope or Gridalicious. Mason fills in those ugly gaps, and creates a perfectly filled space.

Bower Version

2.0.2

USE

Basic CSS

#container {
    width: 100%;
    position: relative;
}
.box {
    float: left;
    background-color: #00ffff;
    position: relative;
}

Call Mason.js (BASIC)

$("#container").mason({
    itemSelector: ".box",
    ratio: 1.5,
    sizes: [
        [1,1],
        [1,2],
        [2,2]
    ]
});

OPTIONS

Mason.js has a number of options:

$("#container").mason({
    itemSelector: ".box",
    ratio: 1.5,
    sizes: [
        [1,1],
        [1,2],
        [2,2]
    ],
    columns: [
        [0,480,1],
        [480,780,2],
        [780,1080,3],
        [1080,1320,4],
        [1320,1680,5]
    ],
    promoted: [
        ['class_name', 2, 1],
        ['class_name', 2, 3],
        ['class_name', 3, 3],
    ],
    filler: {
        itemSelector: '.fillerBox',
        filler_class: 'custom_filler',
        keepDataAndEvents: false
    },
    layout: 'fluid',
    gutter: 10
},function(){
    console.log("COMPLETE!")
});

DESTROY

At times you may want to destroy the mason object and no longer track window changes, to do this assign the mason grid to a variable such as var mason and when you're ready to destroy just call mason.destroy() this will remove all listeners on the mason object and you can remove the grid or elements without any ill effects.

Install

  1. npm install
  2. bower install

Running

cd into project and run gulp

Building

cd into project

  1. run gulp dist
  2. run gulp finish_dist

Examples

Look at the public folder for examples.