A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/haiafara/vue-it-bigger below:

GitHub - haiafara/vue-it-bigger: A simple image

A simple image / (YouTube) video lightbox component for Vue.js 2. Based on vue-image-lightbox.

Click on the screenshot above for a demo.

Improvements over vue-image-lightbox

You know the drill:

npm install vue-it-bigger
# or
yarn add vue-it-bigger

You can view App.vue or the demo for an usage example.

In the <script> section of your component import it:

import LightBox from 'vue-it-bigger'
import('vue-it-bigger/dist/vue-it-bigger.min.css') // when using webpack

Add it to the list of used components:

export default {
  components: {
    LightBox,
  },
}

And use it in the <template> section:

<LightBox :media="media"></LightBox>

The media prop has the following structure:

[
  { // For an image
    type: 'image', // Can be omitted for image
    thumb: 'http://example.com/thumb.jpg',
    src: 'http://example.com/image.jpg',
    caption: 'Caption to display. HTML <b>enabled</b>', // Optional
    srcset: '...' // Optional for displaying responsive images
  },
  { // For a YouTube video
    type: 'youtube',
    thumb: 'https://img.youtube.com/vi/WsptdUFthWI/hqdefault.jpg',
    id: 'WsptdUFthWI',
    caption: 'HTML <b>enabled</b> caption to display' // Optional
  },
  { // For a video that can be played in the <video> tag
    type: 'video',
    thumb: 'https://s3-us-west-1.amazonaws.com/powr/defaults/image-slider2.jpg',
    sources: [
      {
        src: 'https://www.w3schools.com/html/mov_bbb.mp4',
        type: 'video/mp4'
      }
    ],
    caption: '<h4>Monsters Inc.</h4>',
    width: 800, // Required
    height: 600, // Required
    autoplay: true // Optional: Autoplay video when the lightbox opens
  }
]

Create a file named lightbox.js under the plugins directory with following contents:

import Vue from 'vue'

import LightBox from 'vue-it-bigger'
import('vue-it-bigger/dist/vue-it-bigger.min.css')

const plugin = {
  install() {
    Vue.component('LightBox', LightBox)
  },
}

Vue.use(plugin)

Add the plugin in nuxt.config.js:

plugins: [
  {
    src: '~/plugins/lightbox.js',
    ssr: false
  }
]

Use it in any of your components:

<no-ssr placeholder="Loading...">
  <!-- this component will only be rendered on client-side -->
  <LightBox
    :media="lightBoxMedia"
  ></LightBox>
</no-ssr>
name type default description media Array required Media 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 thumbnail 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 interfaceHideTime Number 3000 (ms) Time after which the interface is hidden showCaption Boolean false Whether to show caption or not disableScroll Boolean true set to `true` to avoid scrolling views behind lightbox lengthToLoadMore Number 0 Minimum length unto end to emit load more event closable Boolean true Display the close button at the right top corner or not. ESC clicking-close will also be disabled if closable is set to false. closeText String Close (Esc) Text for the close button previousText String Previous Text for the previous image button nextText String Next Text for the next image button name arguments description nextImage () Move to next image previousImage () Move to previous image closeLightBox () Close lightbox showImage (index) Show the image at index

The content of the close button.

The content of the footer under the image.

name type description current integer Number of the current image displayed total integer Number of images

The previous button on the main image.

The next button on the main image.

The caption of the current image.

name type description currentMedia Object The currently displayed object from the media array

Usage example:

<LightBox
  ref="customCaptionLightbox"
  :media="media"
  :show-caption="true"
>
  <template v-slot:customCaption="slotProps">
    {{ slotProps.currentMedia.caption }}<br>
    There could be some description here.
  </template>
</LightBox>

The Icon used for videos

Clone the repository, cd into it and run:

After you add or modify something make sure the tests still pass:

  1. Make sure everything works locally by running yarn dev
  2. Bump the version in package.json
  3. Draft a new release on the releases page
  4. Publish the release

This project is licensed under the the Apache License, Version 2.0.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4