vue-tinybox
Advanced tools
Weekly downloads
Readme
A slick, yet tiny lightbox gallery for Vue.js
Observe the live demo here: os.karamoff.dev/vue-tinybox
<Tinybox
v-model="index"
:images="images"
loop
no-thumbs
/>
Include the link to Tinybox in <head>
alongside Vue.js:
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script src="https://cdn.jsdelivr.net/npm/vue-tinybox"></script>
Tinybox will auto-install upon detecting the global Vue instance. You can use it right away.
Install the Tinybox package:
npm install vue-tinybox
# or
yarn add vue-tinybox
Register it as you usually would:
import Tinybox from "vue-tinybox";
// or
const Tinybox = require('vue-tinybox');
Vue.component('Tinybox', Tinybox);
//or
Vue.use(Tinybox);
//or
new Vue({
components: { Tinybox },
// ...
});
An Image
object is an object with following fields:
Field name | Type | Description |
---|---|---|
src | String | Image URL |
thumbnail | String | (optional) Thumbnail URL. If omitted, the image URL will be used |
caption | String | (optional) Caption text to be overlayed on the image |
alt | String | (optional) Alt text. If omitted, the caption will be used |
Prop name | Type | Default | Description |
---|---|---|---|
images | Array | [] | List of either image URLs or Image objects |
loop | Boolean | false | Indicates whether the images should loop |
no-thumbs | Boolean | false | When enabled, the thumbnails are hidden |
v-model
You can use v-model
on a Number
variable, which will hold the index of the
image currently open. If no image is open (i.e. Tinybox is closed), the value
becomes null
.
Instead of v-model
you can use the index
prop and change
event:
<Tinybox
v-model="index"
:images="images"
/>
<!-- is equivalent to -->
<Tinybox
:images="images"
:index="index"
@change="(i) => {index = i}"
/>
Event name | Payload | Description |
---|---|---|
change | index of the image changed to | Is emitted on any image change (thumbnail navigation, prev/next, close) |
prev /next | index of the image changed to | Is emitted specifically when the user clicks "Prev"/"Next" or presses Left/Right arrow key |
close | index of the image Tinybox was closed at | Is emitted specifically when the user clicks "Close" or presses the Esc key |
Events can come in handy for business logic cases:
<Tinybox
:images="images"
v-model="index"
@change="onChange"
@prev="onPrevious"
@next="onNext"
@close="onClose"
/>
export default {
// ...
methods: {
onChange(index) {
console.log("User navigated to the photo: ", index);
},
onPrevious(index) {
console.log("User clicked 'previous' to switch to: ", index);
},
onNext(index) {
console.log("User clicked 'previous' to switch to: ", index);
},
onClose(index) {
console.log("User closed TinyBox on this photo: ", index);
}
},
}
![]() | ![]() | ![]() | ![]() | ![]() |
---|---|---|---|---|
21+ | 28+ | 7+ | 16+ | 11 |
FAQs
A slick, yet tiny lightbox gallery for Vue.js
The npm package vue-tinybox receives a total of 557 weekly downloads. As such, vue-tinybox popularity was classified as not popular.
We found that vue-tinybox demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket installs a Github app to automatically flag issues on every pull request and report the health of your dependencies. Find out what is inside your node modules and prevent malicious activity before you update the dependencies.