Data

Galleria

Galleria immagini con strip di thumbnail, navigazione, indicatori, autoplay e supporto fullscreen.

Import

import { Galleria } from '@pzeta/vue-components'

Esempio Base

Props

PropTipoDefaultDescrizione
valueGalleriaImage[][]Array di immagini da visualizzare
activeIndexnumber0Indice dell'immagine attiva (supporta v-model:activeIndex)
fullScreenbooleanfalseAbilita la modalita' fullscreen
visiblebooleanfalseVisibilita' del fullscreen (supporta v-model:visible)
numVisiblenumber5Numero di thumbnail visibili
responsiveOptionsGalleriaResponsiveOptions[][]Opzioni responsive per thumbnail
circularbooleanfalseNavigazione circolare tra le immagini
autoPlaybooleanfalseAbilita l'autoplay
transitionIntervalnumber4000Intervallo autoplay in ms
showThumbnailsbooleantrueMostra la strip di thumbnail
thumbnailsPosition'bottom' | 'top' | 'left' | 'right''bottom'Posizione della strip di thumbnail
showItemNavigatorsbooleanfalseMostra frecce di navigazione sull'immagine principale
showItemNavigatorsOnHoverbooleanfalseMostra i navigatori solo all'hover
showIndicatorsbooleanfalseMostra indicatori (pallini) in alternativa ai thumbnail
indicatorsPosition'bottom' | 'top' | 'left' | 'right''bottom'Posizione degli indicatori
changeItemOnIndicatorHoverbooleanfalseCambia immagine all'hover sull'indicatore invece del click
showThumbnailNavigatorsbooleantrueMostra frecce di navigazione nella strip di thumbnail
containerClassstring | Record<string, boolean> | (string | Record<string, boolean>)[]''Classe CSS aggiuntiva per il container
containerStylestring | Record<string, string>''Stile inline aggiuntivo per il container

GalleriaImage

Proprieta'TipoDescrizione
itemImageSrcstringURL dell'immagine principale (obbligatorio)
thumbnailImageSrcstringURL del thumbnail (opzionale, usa itemImageSrc se assente)
altstringTesto alternativo
titlestringTitolo visualizzato nella caption
descriptionstringDescrizione visualizzata nella caption

GalleriaResponsiveOptions

Proprieta'TipoDescrizione
breakpointstringBreakpoint CSS (es. '768px')
numVisiblenumberNumero di thumbnail visibili sotto questo breakpoint

Emits

EventoPayloadDescrizione
update:activeIndexnumberEmesso al cambio di immagine attiva
update:visiblebooleanEmesso al cambio di visibilita' fullscreen

Slot

SlotScopeDescrizione
item{ item: GalleriaImage, index: number }Template custom per l'immagine principale
thumbnail{ item: GalleriaImage, index: number }Template custom per ogni thumbnail
caption{ item: GalleriaImage }Template custom per la caption dell'immagine
previconIcona custom per il navigatore precedente
nexticonIcona custom per il navigatore successivo
closeiconIcona custom per il pulsante di chiusura fullscreen
headerContenuto nell'header della galleria
footerContenuto nel footer della galleria
indicator{ index: number, active: boolean }Template custom per ogni indicatore

Esempi

Fullscreen con Navigatori

Con Thumbnail Laterali

Autoplay con Caption

Con Indicatori (senza Thumbnail)

Note Comportamento

  • In modalita' fullscreen, il componente usa <Teleport to="body"> ed e' controllato da v-model:visible
  • In fullscreen, la navigazione da tastiera e' abilitata: ArrowLeft/ArrowRight per navigare, Escape per chiudere
  • Gli indicatori sono visibili solo quando showThumbnails e' false
  • La strip di thumbnail si aggiorna automaticamente per mantenere l'immagine attiva visibile

Accessibilita'

  • I pulsanti di navigazione hanno aria-label localizzati tramite @pzeta/vue-i18n
  • Il pulsante di chiusura fullscreen ha aria-label localizzato
  • Gli indicatori hanno aria-label con il numero dell'immagine
  • Navigazione da tastiera disponibile in modalita' fullscreen

TypeScript

import type { GalleriaProps, GalleriaImage, GalleriaResponsiveOptions } from '@pzeta/vue-components'

const images: GalleriaImage[] = [
  {
    itemImageSrc: 'https://example.com/image.jpg',
    thumbnailImageSrc: 'https://example.com/thumb.jpg',
    alt: 'Descrizione immagine',
    title: 'Titolo',
    description: 'Descrizione della foto',
  },
]