TIP: Try navigating through list using left & right arrow keys
l

lightGallery

A customizable, modular, responsive, lightbox gallery plugin.

4060
Github issues
231
Github stars
1 day ago
Github last update date

travis bower npm

lightGallery

A customizable, modular, responsive, lightbox gallery plugin for jQuery. lightgallery

Demo

JQuery lightGallery demo. Codepen demo




Version 2.0 update

Version 2.0.0 release is scheduled for May third week. But you can keep using the current version and upgrade whenever you want. The upgrade process is pretty straightforward unless you have a massive modificationsB made with version 1.x

Subscribe to get notified on the stable release. - ProductHunt

  • Completely re-wrote from scratch in typescript
  • Removed jQuery dependency
  • Moved all modules to the main repo for better maintainability.
  • Dropped IE 8 and 9 support. Let me know if you still need support for IE 8 and 9. Ibll consider adding a plugin to add support if there is enough demand.
  • Website
  • Docs
  • Demos
Any questions, ideas, suggestions about v2? please start a discussion.

New features

  • Pinch to zoom
  • Virtual slides
  • Swipe to close
  • Zoom from the origin
  • Inline gallery
  • Next-generation image formats support(webp, JPEG XL). etc
  • Better customizability
  • Better performance on mobile devices.
  • Dynamically add, remove slides while the gallery is open
  • Comment interface
  • and much more.

How to upgrade

To make the upgrade seamless, v2 follows the API structure as much as possible. But, few settings are removed and a lot of additional settings are added, the way we use public methods is changed slightly and few events are renamed.

Initialization V2 doesnbt require jQuery as a dependancy.

lightGallery(document.getElementById('lightgallery'), {
  plugins: [lgZoom, lgThumbnail,]
  speed: 500
  ... other settings
});

Plugins To avoid polluting global scope, since v2 plugins has to be passed via settings.

lightGallery(document.getElementById(bblightgallery), {
    b(plugins: [lgZoom,B lgAutoplay,B lgComment,B lgFullscreenB ,B lgHash,B lgPager,B lgRotate,B lgShare,B lgThumbnail,B lgVideo]b(
});
  • Removed in-built support for Dailymotion VK. We Will be adding separate plugins for DailyMotion and VK support
  • Added Wistia support
  • HTML videos - Videos can be passed via data-video attribute instead of passing it via hidden div
data-video='{"source": [{"src":"/videos/video1.mp4", "type":"video/mp4"}], "attributes": {"preload": false, "controls": true}}'
  • Events are renamed - Please take a look at the documentation
  • Few settings are added, removed, or renamed. Rather than listing down all the changes here, Ibd recommend going through the current settings that you are using and compare them with the new documentation.



Main features

  • Fully responsive.
  • Modular architecture with built in plugins.
  • Touch and support for mobile devices.
  • Mouse drag supports for desktops.
  • Double-click/Double-tap to see actual size of the image.
  • Animated thumbnails.
  • Social sharing.
  • Youtube Vimeo Dailymotion VK and html5 videos Support.
  • 20+ Hardware-Accelerated CSS3 transitions.
  • Dynamic mode.
  • Full screen support.
  • Supports zoom.
  • Browser history API.
  • Responsive images.
  • HTML iframe support.
  • Multiple instances on one page.
  • Easily customizable via CSS (SCSS) and Settings.
  • Smart image preloading and code optimization.
  • Keyboard Navigation for desktop.
  • Font icon support.
  • Accessibility support.
  • Rotate, flip images.
  • And many more.

Browser support

lightgallery supports all major browsers including IE 8 and above.

Installation

Install with NPM

You can install lightgallery using the npm package manager.

npm install lightgallery

Or Install all modules together

$ npm install lightgallery lg-thumbnail lg-autoplay lg-video lg-fullscreen lg-pager lg-zoom lg-hash lg-share lg-rotate

You can also find lightgallery on Yarn and Bower.

Yarn

yarn add lightgallery

Bower

bower install lightgallery --save

Download from Github

You can also directly download lightgallery from github.

CDN

If you prefer to use a CDN you can load files via jsdelivr or cdnjs

Here is the jsdelivr collection of lightGallery and its modules.

Include CSS and Javascript files

First of all add lightgallery.css in the <head> of the document.

<head>
    <link type="text/css" rel="stylesheet" href="css/lightGallery.css" /> 
</head>

Then include jQuery and lightgallery.min.js into your document. If you want to include any lightgallery plugin you can include it after lightgallery.min.js. lightGallery and it's plugins are available in lightgallery-all.js

<body>
    ....

    <!-- jQuery version must be >= 1.8.0; -->
    <script src="jquery.min.js"></script>

    <!-- A jQuery plugin that adds cross-browser mouse wheel support. (Optional) -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.1.13/jquery.mousewheel.min.js"></script>

    <script src="js/lightgallery.min.js"></script>

    <!-- lightgallery plugins -->
    <script src="js/lg-thumbnail.min.js"></script>
    <script src="js/lg-fullscreen.min.js"></script>
</body>  

lightGallery also supports AMD, CommonJS and ES6 modules. When you use AMD make sure that lightgallery.js is loaded before lightgallery modules.

require(['./lightgallery.js'], function() {
    require(["./lg-zoom.js", "./lg-thumbnail.js"], function(){
        $("#lightgallery").lightGallery(); 
    });
});

The markup

lightgallery does not force you to use any kind of markup. you can use whatever markup you want. But I suggest you to use the following markup. Here you can find the detailed examples of different kind of markups.

<div id="lightgallery">
  <a href="img/img1.jpg">
      <img src="img/thumb1.jpg" />
  </a>
  <a href="img/img2.jpg">
      <img src="img/thumb2.jpg" />
  </a>
  ...
</div>

Call the plugin

Finally you need to initiate the gallery by adding the following code.

<script type="text/javascript">
    $(document).ready(function() {
        $("#lightgallery").lightGallery(); 
    });
</script>

Resources

Demos

Modules

  1. Thumbnail - GItHub - Docs
  2. Autoplay - GItHub - Docs
  3. Video - GItHub - Docs
  4. Fullscreen - GItHub - Docs
  5. Pager - GItHub - Docs
  6. Zoom - GItHub - Docs
  7. Hash - GItHub - Docs
  8. Share - GItHub - Docs
  9. Rotate - GItHub - Docs

  10. exif - GitHub - Author - Andrew McOlash

License

Commercial license

If you want to use lightGallery to develop commercial sites, themes, projects, and applications, the Commercial license is the appropriate license. With this option, your source code is kept proprietary. Read more about the commercial license

Open source license

If you are creating an open source application under a license compatible with the GNU GPL license v3, you may use this project under the terms of the GPLv3.

Buy us a coffeeBuy us a coffee