Data

Image

Componente immagine con supporto per preview modale, zoom e gestione degli eventi di caricamento.

Import

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

Esempio Base

Props

PropTipoDefaultDescrizione
srcstringURL sorgente dell'immagine (obbligatorio)
altstring''Testo alternativo per accessibilita'
widthstring | numberundefinedLarghezza (valore CSS o numero in px)
heightstring | numberundefinedAltezza (valore CSS o numero in px)
previewbooleanfalseAbilita la preview modale con zoom al click
imageClassstring''Classe CSS aggiuntiva per il tag <img>
imageStyleRecord<string, string | number>{}Stile inline aggiuntivo per il tag <img>
classstring''Classe CSS aggiuntiva per il container esterno

Emits

EventoPayloadDescrizione
showEmesso quando il preview modale viene aperto
hideEmesso quando il preview modale viene chiuso
loadEventEmesso quando l'immagine termina di caricarsi
errorEventEmesso quando si verifica un errore nel caricamento

Slot

SlotScopeDescrizione
imageTemplate custom per l'immagine thumbnail (sostituisce il <img> di default)
previewiconIcona custom sovrapposta all'immagine per indicare la preview
preview{ style: Record<string, string>, onClick: (event: MouseEvent) => void }Template custom per l'immagine nel modale di preview

Esempi

Immagine con Preview Modale

Galleria con Preview

Dimensioni Diverse

Immagine Responsive

Note Comportamento

  • Quando preview e' true, al passaggio del mouse sull'immagine appare un'icona overlay cliccabile
  • Il modale di preview e' renderizzato tramite <Teleport to="body"> per evitare problemi di z-index
  • All'apertura del preview, lo scroll del body viene disabilitato e ripristinato alla chiusura
  • Se width o height sono numeri, vengono automaticamente convertiti in valori CSS con suffisso px
  • L'icona di preview e l'icona di chiusura del modale sono configurabili tramite ConfigPlugin

Accessibilita'

  • L'attributo alt e' fondamentale per l'accessibilita': fornire sempre una descrizione significativa
  • L'overlay di preview e' attivabile via click
  • Il modale e' chiudibile cliccando fuori dall'immagine o sul pulsante di chiusura

TypeScript

import type { ImageProps, ImageEmits } from '@pzeta/vue-components'