UNPKG

image-grid

Version:
114 lines (80 loc) 3.44 kB
image-grid ========== > Fast minimalist image-grid. Layout elements with known aspect ratios in a grid as known from [flickr](https://www.flickr.com/explore) or [google image search](https://www.google.dk/search?q=image-grid&tbm=isch). Elements can be either raw or wrapped images with `width` and `height` attributes - or wrapper elements with a `data-ratio` attribute. * _Very_ fast due to using managed stylesheets instead of inline styles. * No library dependencies. * And - oh yeah, it's fast! ## Usage image-grid will handle the layout of images in a container. ### HTML ```html <div class="container"> <img width="400" height="400" src="http://lorempixel.com/400/400?2" /> <img width="520" height="400" src="http://lorempixel.com/520/400?3" /> <img width="400" height="400" src="http://lorempixel.com/400/400?4" /> <img width="440" height="400" src="http://lorempixel.com/440/400?5" /> <img width="360" height="400" src="http://lorempixel.com/360/400?6" /> <img width="400" height="400" src="http://lorempixel.com/400/400?7" /> <img width="360" height="400" src="http://lorempixel.com/360/400" /> <img width="600" height="400" src="http://lorempixel.com/600/400" /> <img width="480" height="400" src="http://lorempixel.com/480/400" /> <img width="520" height="400" src="http://lorempixel.com/520/400" /> <img width="560" height="400" src="http://lorempixel.com/560/400" /> <img width="480" height="400" src="http://lorempixel.com/480/400?13" /> <img width="560" height="400" src="http://lorempixel.com/560/400?14" /> <img width="320" height="400" src="http://lorempixel.com/320/400?15" /> <img width="480" height="400" src="http://lorempixel.com/480/400?16" /> <img width="440" height="400" src="http://lorempixel.com/440/400?17" /> <div> <img width="520" height="400" src="http://lorempixel.com/520/400?18" /> </div> <div data-ratio="16-9"> <img src="http://lorempixel.com/800/450?19" /> </div> </div> ``` ### JS ```js var grid = require("image-grid"); // Create a new image-grid. var myImageGrid = grid(".container", { maxHeight: 200, margin: 1, callback: function () { // do stuff because layout changed. } }); // Set new options myImageGrid.set({ margin: 10 }); // Deactivate the grid before removing it from the DOM. myImageGrid.deactivate(); myImageGrid.container.parentNode.removeChild(myImageGrid.container); ``` ## API ### imageGrid Create an image-grid to handle the layout of images in a container. ##### Arguments * `selector` (string) - The selector of the image-grid container element. * `options` * `maxHeight` (number) - Optional. The maximum height of each row of images in the grid. Default is `100`. * `margin` (number) - Optional. The margin between images in the grid. Default is `10`. * `callback` (function) - Optional. This callback will be called everytime the layout is re-rendered. Default is null. ##### Returns An image-grid instance. ### image-grid instance methods #### #.set Can be used to change options after instance creation. ##### Arguments * `options` See imageGrid `options` argument. #### #.render Can be called to refresh the layout manually. ##### Arguments * `force` (boolean) - Optional. . #### #.deactivate Deactivates the grid and removes the stylesheet for the instance and events if necessary. #### #.activate Re-active deactivated instance.