jQuery Plugin For Justified Image Gallery - Justified-Gallery
File Size: | 3.94 MB |
---|---|
Views Total: | 28206 |
Last Update: | |
Publish Date: | |
Official Website: | Go to website |
License: | MIT |
Justified-Gallery is a simple and fast jQuery plugin that automatically adjust the width and height of your images to create a justified image gallery on your web site.
Features:
- Lightbox effect supported (Colorbox Plugin needed)
- caption over image supported
Basic Usage:
1. Load jQuery library and jquery.justifiedgallery.min.js on your page
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <script type='text/javascript' src='../js/jquery.justifiedgallery.min.js'></script>
2. The CSS
html { overflow-y: scroll } .justifiedGallery { width: 100%; margin-bottom: 10px } .justifiedGallery .jg-image { position: absolute; display: inline-block; vertical-align: top; margin-left: 0 } .justifiedGallery .jg-image img { border: none; display: none } .justifiedGallery .jg-image a { text-decoration: none } .justifiedGallery .jg-image-label { white-space: normal; font: normal 12px arial; background: #000; color: #fff; position: absolute; left: 0; right: 0; padding: 5px 5px 10px 8px; text-align: left; opacity: 0; filter: alpha(opacity=0) } .justifiedGallery .jg-loading-img { margin: auto; width: 50px; height: 50px; background: url(../img/loading.gif) no-repeat center center } .justifiedGallery .jg-loading { margin: auto; width: 50px; height: 50px; background-color: white; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px } .justifiedGallery .jg-row { position: relative; white-space: nowrap; overflow: hidden; margin-bottom: 4px }
3. The Html
<div id="demo" > <a href="photos/8083451788_552becfbc7_b.jpg" title="What's your destination?"> <img alt="What's your destination?" src="photos/8083451788_552becfbc7_m.jpg" /> </a> <a href="photos/7948632554_01f6ae6b6f_b.jpg" title="Just in a dream Place"> <img alt="Just in a dream Place" src="photos/7948632554_01f6ae6b6f_m.jpg" /> </a> <a href="photos/7893834940_8fcbb47c14_b.jpg" title="Il Capo at Palermo"> <img alt="Il Capo at Palermo" src="photos/7893834940_8fcbb47c14_m.jpg" /> </a> <a href="photos/7822678460_ee98ff1f69_b.jpg" title="Erice"> <img alt="Erice" src="photos/7822678460_ee98ff1f69_m.jpg" /> </a> <a href="photos/7302459122_19fa1d8223_b.jpg" title="Truthful Innocence"> <img alt="Truthful Innocence" src="photos/7302459122_19fa1d8223_m.jpg" /> </a> ... </div>
4. The javascript
<script type="text/javascript"> $("#demo").justifiedGallery({ sizeRangeSuffixes : { // e.g. Flickr uses '_t' 'lt100': '', // e.g. Flickr uses '_m' 'lt240': '', // e.g. Flickr uses '_n' 'lt320': '', // e.g. Flickr uses '' 'lt500': '', // e.g. Flickr uses '_z' 'lt640': '', // e.g. Flickr uses '_b' 'lt1024': '', }, rowHeight : 120, // negative value = no limits, // 0 = 1.5 * rowHeight maxRowHeight : 0, margins : 1, // negative value = same as margins, 0 = disabled border: -1, // or can be 'justify' or 'hide' lastRow : 'nojustify', // if row width / available space > 0.75 it will be always justified // (i.e. lastRow setting is not considered) justifyThreshold: 0.75, fixedHeight : false, waitThumbnailsLoad : true, captions : true, cssAnimation: false, // ignored with css animations imagesAnimationDuration : 500, // ignored with css animations captionSettings : { animationDuration : 500, visibleOpacity : 0.7, nonVisibleOpacity : 0.0 }, // rewrite the rel of each analyzed links rel : null, // rewrite the target of all links target : null, extension : /\.[^.\\/]+$/, refreshTime : 100, randomize : false }); </script>
5. Default options.
sizeRangeSuffixes: { }, /* e.g. Flickr configuration { 100: '_t', // used when longest is less than 100px 240: '_m', // used when longest is between 101px and 240px 320: '_n', // ... 500: '', 640: '_z', 1024: '_b' // used as else case because it is the last } */ thumbnailPath: undefined, /* If defined, sizeRangeSuffixes is not used, and this function is used to determine the path relative to a specific thumbnail size. The function should accept respectively three arguments: current path, width and height */ rowHeight: 120, // required? required to be > 0? maxRowHeight: false, // false or negative value to deactivate. Positive number to express the value in pixels, // A string '[0-9]+%' to express in percentage (e.g. 300% means that the row height // can't exceed 3 * rowHeight) margins: 1, border: -1, // negative value = same as margins, 0 = disabled, any other value to set the border lastRow: 'nojustify', // … which is the same as 'left', or can be 'justify', 'center', 'right' or 'hide' justifyThreshold: 0.90, /* if row width / available space > 0.90 it will be always justified * (i.e. lastRow setting is not considered) */ waitThumbnailsLoad: true, captions: true, cssAnimation: true, imagesAnimationDuration: 500, // ignored with css animations captionSettings: { // ignored with css animations animationDuration: 500, visibleOpacity: 0.7, nonVisibleOpacity: 0.0 }, rel: null, // rewrite the rel of each analyzed links target: null, // rewrite the target of all links extension: /\.[^.\\/]+$/, // regexp to capture the extension of an image maxAnalyzeDuration: 100, // max. interval (in ms) allowed for one go of layout (re)calculation refreshTime: 200, // time interval (in ms) to check if the page changes its width refreshSensitivity: 0, // change in width allowed (in px) without re-building the gallery randomize: false, rtl: false, // right-to-left mode sort: false, /* - false: to do not sort - function: to sort them using the function as comparator (see Array.prototype.sort()) */ filter: false, /* - false, null or undefined: for a disabled filter - a string: an entry is kept if entry.is(filter string) returns true see jQuery's .is() function for further information - a function: invoked with arguments (entry, index, array). Return true to keep the entry, false otherwise. It follows the specifications of the Array.prototype.filter() function of JavaScript. */ selector: 'a, div:not(.spinner)' // The selector that is used to know what are the entries of the gallery
Changelog:
2020-05-22
- v3.8.1
2019-04-24
- Fixed Big image loading even with correct srcset and thumbnailPath
v3.7.0 (2019-04-18)
- Bugfix
v3.6.5 (2018-02-07)
- update
v3.6.3 (2016-08-14)
- maxRowHeight clarifications
- Bugs fixed.
v3.6.2 (2016-02-27)
- fixed maxRowHeight error with percentages, set default to -1
- thumnailPath function
v3.6.1 (2015-09-29)
- Sort (works also with infinite scroll)
- Filter (works also with infinite scroll)
- Randomize images now works also with infinite scroll
- Text entries (i.e. without images) support
- Destroy method
- maxRowHeight could be also a percentage
- configurable sizeRangeSuffixes.
- Configurable entry selector
- Code refactoring
v3.5.4 (2015-02-13)
- Added the border option
- Fixed some problems with waitThumbnailsLoad and infinite scroll
v3.5.1 (2015-01-13)
- update.
v3.5 (2014-12-13)
- The default suffixes are all empty, to be simpler to understand. To have the previous suffixes, the following settings can be used: sizeRangeSuffixes : { 'lt100': '_t', 'lt240': '_m', 'lt320': '_n', 'lt500': '', 'lt640': '_z', 'lt1024': '_b' }
- Corrected bugs for the callbacks when waitThumbnailsLoad = false
v3.4 beta 1 (2014-09-23)
- Performance improvements
- With nojustify, if there is only a row, it doesn't justify anything. The previous behaviour seems too like a bug than a feature.
- Infinite scroll example with plain javascript to be more understandable.
- Fixes some bugs with infinite scroll
v3.3.0 (2014-08-23)
- No more crops. Removed some floating point approximations that caused some small crops.
- Initial opacity settings for the caption to allow them to be always visible. Can be also configured changing the less file, if one prefers CSS animations.
- All caption settings in a single object to be more compact captionSettings : { //ignored with css animations animationDuration : 500, visibleOpacity : 0.7, nonVisibleOpacity : 0.0 },
- Justification formulas refactoring to be more maintainable.
v3.2.0 (2014-06-08)
- A gallery of div can be used instead of a
- Fixed errors for the last rows
- Option to use only css animations (i.e cssAnimation)
- Without css animations
- Configurable caption fadein/fadeout time (i.e. captionsAnimationDuration)
- Configurable caption final opacity (i.e. captionsVisibleOpacity)
- Configurable images fadein time (i.e. imagesAnimationDuration)
- Configurable treshold that decides to justify the row also in presence of nojustify (i.e. justifyThreshold)
v3.1.0 (2014-04-20)
- Improved the algoritm to reduce the image crops
- Fixed errors with some jquery versions
- Fixed errors with fixed height
- Settings checks and parsing
v3.0.1 (2014-04-07)
- update.
This awesome jQuery plugin is developed by miromannino. For more Advanced Usages, please check the demo page or visit the official website.