Salvattore is a library agnostic JS script that will help you organize your HTML elements according to the number of columns you specify, like jQuery Masonry.
- No requirements: Salvattore is a standalone script, it will work right away after being referenced in your HTML page.
- Extremely lightweight: about 2.7KB (minified and gzipped.)
- CSS-driven configuration: the number of columns is defined in CSS and the styling is left to the user.
- Media queries ready: the same parameters can be used inside media queries for better results on different devices.
- Wide browser support: modern browsers and IE9+
- Balanced columns: to keep all columns about the same height.
To find out more and see it in action, please visit our website.
You can also follow us on Twitter.
Methods can be called on the globally exposed
salvattore object for advanced usage.
var grid = document.querySelector('#grid'); var item = document.createElement('article'); salvattore.appendElements(grid, [item]); item.outerHTML = 'I’ve been appended!';
|appendElements||grid : DOM object, elements: Array of DOM objects||Adds elements to the end of a grid.|
|prependElements||grid : DOM object, elements: Array of DOM objects||Adds elements to a beginning of a grid. Adds multiple elements one by one before each other, so note the order.|
|registerGrid||grid : DOM object||Adds a new grid to salvattore. Which is initialized automatically then.|
|recreateColumns||grid : DOM object||Removes all the columns from the grid, and adds them again.|
|rescanMediaQueries||Checks stylesheets and selectors for media queries again. Recreates the columns for all grids afterwards.|
How to contribute
We use Gulp to add polyfills and minify the script in the
dist/ folder. To make changes to the script itself, please edit
src/salvattore.js and send us a pull request.
Share feedback & ideas
You can even contribute by using Salvattore and sharing bugs, ideas or solutions on the Issues page. Protip: if you're posting a bug please share all the relevant data and ideally a live URL so that we can debug (yeah we do that!)