vue-light-gallery
VueJS lightweight image gallery for both mobile and desktop browsers.
- Standalone: Zero-dependencies.
- Fully responsive.
- Keyboard and Touch support.
- Multiple galleries on one page.
- Lazy & smart image preloading.
- Color customization.
Demo
License
MIT License
install
// Yarnyarn add vue-light-gallery // NPMnpm install vue-light-gallery
Usage
As a local component
As a Global component
// Your APP entry point.// F.E: index.js;; Vue; /* ... */;
<!-- Component.vue --> ... ...
Or if you want to change the component id:
// Your APP entry point.// F.E: index.js;; Vue; /* ... */;
<!-- Component.vue --> ... ...
Props
Props | Type | Default | Description |
---|---|---|---|
images | Array | [] | List of Images |
index | Number | null | index of the displayed image |
disableScroll | Boolean | false | Disable the scroll |
background | String | rgba(0, 0, 0, 0.8) | Main container background |
interfaceColor | String | rgba(255, 255, 255, 0.8) | Icons color |
Images definition
Without title: Array<string>
const images = 'http://url.com/img1.jpg' 'http://url.com/img2.jpg' ;
With title: Array<Object>
const images = title: 'image 1' url: 'http://url.com/img1.jpg' title: 'image 2' url: 'http://url.com/img2.jpg' ;
The title will only appear if Object.title
property is defined.
Events
Name | Params | Description |
---|---|---|
close | Triggered when the lightbox is closed | |
slide | { index: Number } | Triggered when the image change (next or prev) |
Usage with Nuxt
Create the plugin lightGallery.client.js
:
;; Vue;
Add the plugin to nuxt.config.js
:
plugins: [
'~/plugins/lightGallery.client.js',
],
Wrap the component in Nuxt's no-ssr
component.
Allusions
- Inspired by BaguetteBox
- Spinner extracted from epic-spinners