A simple image lightbox component for Vuejs
NPM Package
I use CSS style from react-images
npm run dev
yarn dev
Install the package:
npm install vue-image-lightbox vue-lazyload vue-touch@next
yarn add vue-image-lightbox vue-lazyload vue-touch@next
Then import it in your project
At your entry point (main.js
normally)
import Vue from 'vue'
import VueLazyLoad from 'vue-lazyload'
import VueTouch from 'vue-touch'
...
Vue.use(VueLazyLoad)
Vue.use(VueTouch, { name: 'v-touch' })
and use the lightbox:
import Lightbox from 'vue-image-lightbox'
export default {
components: {
Lightbox,
},
}
<script src="path/to/vue.js"></script>
<script src="path/to/dist/vue-image-lightbox.js"></script>
You can simply view App.vue to see how to use vue-image-lightbox
Import CSS style
require('vue-image-lightbox/dist/vue-image-lightbox.min.css')
// Use only when you are using Webpack
How to use:
<lightbox :images="images"></lightbox>
images
has the structure:
[
{
thumb: 'http://example.com/thumb.jpg',
src: 'http://example.com/image.jpg',
caption: 'caption to display. receive <html> <b>tag</b>', // Optional
}
]
name | type | default | description |
---|---|---|---|
images | Array | required | Image array to display |
showLightBox | Boolean | true | Whether to show lightbox or not at the beginning |
startAt | Number | 0 | Index of the image that you want to start at |
nThumbs | Number | 7 | Number of thumnail images |
showThumbs | Boolean | true | Whether to show thumbnails or not |
autoPlay | Boolean | false | Move to next image automatically |
autoPlayTime | Number | 3000 (ms) | Time to stop at an image before move on to next image |
siteLoading | null | default image when your image is error or loading | |
showCaption | Boolean | false | Whether to show caption or not |
name | arguments | description |
---|---|---|
nextImage | () | Move to next image |
previousImage | () | Move to previous image |
closeLightBox | () | Close lightbox |
showImage | (index) | Show the image at index |
Most of the CSS belongs to react-images