You can use lightGallery plugin instance public methods to trigger specific lightGallery actions. lightGallery provides several useful methods which can be used to customize the gallery or to build your own features. Demo

Access plugin instance

lightGallery plugin instance can be accessed in two ways, through the lightGallery function and through the lightGallery custom init event.

const lg = document.getElementById('lg-method-demo');

// Get the plugin instance through the lightGallery main function
const plugin = lightGallery(lg);

// or get thought init event
// let plugin = null;
// lg.addEventListener('lgInit', (event) => {
//   plugin = event.detail.instance;
// });

// Go to third slide
// Index starts from 0

Available public methods

Here you can find the list of available public methods. Not all methods are exposed, please open an issue if you think you need access to more public methods.

Name: closeGallery

Description: Close lightGallery if it is opened.

If closable is false in the settings, you need to pass true via closeGallery method to force close gallery


 const plugin = lightGallery();

Name: destroy

Description: Destroy lightGallery. Destroy lightGallery and its plugin instances completely

This method also calls CloseGallery function internally. Returns the time takes to completely close and destroy the instance. In case if you want to re-initialize lightGallery right after destroying it, initialize it only once the destroy process is completed. You can use refresh method most of the times.


 const plugin = lightGallery();

Name: goToNextSlide

Description: Go to next slide


 const plugin = lightGallery();

See also:Demo

Name: goToPrevSlide

Description: Go to previous slides


 const plugin = lightGallery({});

See also:Demo

Name: openGallery

Description: Open lightGallery. Open gallery with specific slide by passing index of the slide as parameter.


const $dynamicGallery = document.getElementById('dynamic-gallery-demo');
const dynamicGallery = lightGallery($dynamicGallery, {
    dynamic: true,
    dynamicEl: [
             src: 'img/1.jpg',
             thumb: 'img/thumb-1.jpg',
             subHtml: '<h4>Image 1 title</h4><p>Image 1 descriptions.</p>',
$dynamicGallery.addEventListener('click', function () {
    // Starts with third item.(Optional).
    // This is useful if you want use dynamic mode with
    // custom thumbnails (thumbnails outside gallery),

Name: refresh

Description: Refresh lightGallery with new set of children.

This is useful to update the gallery when the child elements are changed without calling destroy method. If you are using dynamic mode, you can pass the modified array of dynamicEl as the first parameter to refresh the dynamic gallery

See also:Demo


 const plugin = lightGallery();
 // Delete or add children, then call

Name: slide

Description: Goto a specific slide.


 const plugin = lightGallery();
 // to go to 3rd slide

Name: toggleMaximize

Description: Maximize minimize inline gallery.

Name: updateSlides

Description: Update slides dynamically. Add, edit or delete slides dynamically when lightGallery is opened. Modify the current gallery items and pass it via updateSlides method

Note :

  • Do not mutate existing lightGallery items directly.
  • Always pass new list of gallery items
  • You need to take care of thumbnails outside the gallery if any
  • user this method only if you want to update slides when the gallery is opened. Otherwise, use refresh() method.


const plugin = lightGallery();

// Adding slides dynamically
let galleryItems = [
// Access existing lightGallery items
// galleryItems are automatically generated internally from the gallery HTML markup
// or directly from galleryItems when dynamic gallery is used
        src: 'img/img-1.png',
          thumb: 'img/thumb1.png',

// Remove slides dynamically
galleryItems = JSON.parse(
updateSlideInstance.updateSlides(galleryItems, 1);

See also:Demo

Edit this page on GitHub