FastComments.com

FastComments Image Chat consente discussioni interattive sulle immagini permettendo agli utenti di fare clic in qualsiasi punto di un'immagine per creare punti di discussione. Gli utenti possono fare clic su parti specifiche delle immagini per avviare conversazioni su quelle aree, creando indicatori visivi che mostrano dove si trovano le discussioni.

Questa funzione è perfetta per feedback sul design, recensioni di prodotti, materiali didattici con diagrammi, gallerie fotografiche con commenti e qualsiasi scenario in cui si desiderino discussioni contestuali ancorate a posizioni specifiche dell'immagine.

Design Reattivo Internal Link

Posizionamento Basato su Percentuali

Image Chat usa coordinate basate su percentuali invece di coordinate in pixel per posizionare i marker di chat sulle immagini. Quando un utente clicca su un'immagine, il widget converte le coordinate in pixel del clic in percentuali della larghezza e dell'altezza dell'immagine. Questo approccio garantisce che i marker rimangano nella posizione corretta indipendentemente da come l'immagine viene visualizzata.

Ad esempio, se un utente clicca a 250 pixel dal bordo sinistro di un'immagine larga 1000px, il widget memorizza questo come 25% dal bordo sinistro. Quando un altro utente visualizza la stessa immagine a 500px di larghezza su un dispositivo mobile, il marker appare a 125 pixel dal bordo sinistro, che è ancora il 25% della larghezza.

Vantaggi per layout responsive

Questo sistema basato su percentuali fa sì che Image Chat funzioni senza problemi su tutte le dimensioni e orientamenti dei dispositivi. Le tue immagini potrebbero essere visualizzate a dimensioni diverse a seconda della larghezza dello schermo, delle regole CSS o dei vincoli del contenitore, ma i marker si allineano sempre correttamente con le posizioni previste.

Gli utenti su computer desktop con monitor grandi vedono i marker nelle stesse posizioni relative degli utenti su smartphone con schermi piccoli. I marker si ridimensionano proporzionalmente all'immagine stessa.

Ridimensionamento dell'Immagine e Rapporto d'Aspetto

Finché la tua immagine mantiene il rapporto d'aspetto durante il ridimensionamento (che è il comportamento predefinito del browser), i marker basati su percentuali rimarranno perfettamente allineati. Il widget presuppone che le immagini si ridimensionino proporzionalmente e calcola le posizioni basandosi su questa assunzione.

Se applichi CSS che distorce il rapporto d'aspetto dell'immagine (ad esempio usando object-fit: cover con dimensioni specifiche), le posizioni dei marker potrebbero non allinearsi correttamente. Per risultati ottimali, lascia che le immagini si ridimensionino naturalmente oppure usa object-fit: contain per mantenere il rapporto d'aspetto.

Dimensionamento del quadrato di chat

La dimensione visiva dei marker di chat è anch'essa basata su percentuali. L'opzione di configurazione chatSquarePercentage ha valore predefinito 5%, il che significa che ogni quadrato corrisponde al 5% della larghezza dell'immagine. Questo garantisce un peso visivo coerente tra immagini di diverse dimensioni.

Su un'immagine larga 1000px con l'impostazione predefinita del 5%, i marker sono quadrati da 50px. Su un'immagine larga 500px, gli stessi marker sono quadrati da 25px. Rimangono proporzionali alla dimensione dell'immagine.

Comportamento su Mobile

Su schermi con larghezza inferiore a 768px, Image Chat passa a un layout ottimizzato per mobile. Le finestre di chat si aprono a schermo intero invece di fluttuare accanto al marker. Questo offre una migliore usabilità su schermi piccoli dove le finestre flottanti oscurerebbero troppo l'immagine.

I marker stessi restano visibili e cliccabili alle loro posizioni basate su percentuali. Gli utenti possono comunque vedere dove sono localizzate le discussioni e toccare i marker per aprire l'interfaccia di chat a schermo intero.

Caricamento Dinamico delle Immagini

Il sistema basato su percentuali funziona correttamente anche quando le immagini vengono caricate in modo asincrono o cambiano dimensione dopo il caricamento della pagina. Il widget monitora l'elemento immagine e ricalcola le posizioni dei marker ogni volta che cambiano le dimensioni dell'immagine.

Se stai usando il lazy-loading delle immagini o implementando immagini responsive con dimensioni diverse a differenti breakpoint, i marker si adattano automaticamente quando cambia la dimensione dell'immagine.

Coerenza tra Dispositivi

Poiché le coordinate vengono memorizzate come percentuali nel database, una discussione creata su un computer desktop appare esattamente nella stessa posizione relativa quando viene visualizzata su un tablet o uno smartphone. Gli utenti possono collaborare tra dispositivi senza incongruenze nel posizionamento.

Questo funziona in entrambe le direzioni. Una discussione creata toccando un punto specifico su un dispositivo mobile appare nella stessa posizione relativa quando viene visualizzata su un grande monitor desktop.

Considerazioni sul Viewport

Il widget calcola le percentuali rispetto all'elemento immagine stesso, non rispetto al viewport. Ciò significa che lo scorrimento della pagina o la modifica delle dimensioni della finestra del browser non influiscono sulle posizioni dei marker. I marker restano ancorati alle loro posizioni sull'immagine indipendentemente dai cambiamenti del viewport.

Protezione futura dei contenuti

L'approccio basato su percentuali rende le tue discussioni sulle immagini resilienti ai cambiamenti di layout, design o ecosistema di dispositivi. Con l'emergere di nuove dimensioni di schermo e dispositivi, le discussioni esistenti continueranno a essere visualizzate correttamente senza richiedere aggiornamenti o migrazioni.

Personalizzazione Internal Link

Supporto per la Modalità Scura

Image Chat include il supporto integrato per la modalità scura. Quando imposti hasDarkBackground: true nella tua configurazione, le finestre della chat e gli elementi dell'interfaccia si adattano automaticamente per funzionare bene su sfondi scuri.

FastCommentsImageChat(imageElement, {
    tenantId: 'demo',
    hasDarkBackground: true
});

Lo stile per la modalità scura si applica alle finestre della chat, ai quadrati dei marker e a tutti gli elementi interattivi. Se il tuo sito dispone di un interruttore per la modalità scura, puoi reinizializzare il widget quando la modalità cambia, oppure usare l'approccio della classe sul body descritto più avanti.

Modalità Scura Dinamica

Se la modalità scura del tuo sito è controllata aggiungendo la classe .dark all'elemento body, l'interfaccia di Image Chat la rispetterà automaticamente senza necessità di reinizializzazione. Gli stili del widget sono progettati per rispondere alla presenza di questa classe.

/* Il tuo CSS per la modalità scura */
body.dark {
    background: #1a1a1a;
    color: #ffffff;
}

Personalizzazione con CSS

Puoi personalizzare l'aspetto dei marker, delle finestre della chat e di altri elementi utilizzando il CSS. Il widget aggiunge classi specifiche che puoi prendere di mira nel tuo foglio di stile.

I quadrati e le finestre della chat utilizzano il sistema di stile delle bolle di commento di FastComments, quindi qualsiasi personalizzazione che hai applicato al widget di commenti standard influenzerà anche Image Chat.

Dimensione dei Quadrati della Chat

L'opzione chatSquarePercentage controlla la dimensione dei marker cliccabili. Il valore predefinito è il 5% della larghezza dell'immagine:

FastCommentsImageChat(imageElement, {
    tenantId: 'demo',
    chatSquarePercentage: 7  // Quadrati più grandi e più visibili
});

Valori più piccoli creano marker più discreti che si fondono con l'immagine. Valori più grandi rendono i marker più evidenti e più facili da cliccare, specialmente sui dispositivi mobili o per motivi di accessibilità.

Comportamento sui dispositivi mobili

Su schermi con larghezza inferiore a 768px, Image Chat passa automaticamente a un layout ottimizzato per dispositivi mobili. Le finestre della chat appaiono a schermo intero invece di fluttuare accanto ai marker, offrendo una migliore usabilità su schermi piccoli.

I marker rimangono visibili nelle loro posizioni responsive sull'immagine. Gli utenti possono toccare un qualsiasi marker per aprire l'interfaccia della chat a schermo intero. Questo comportamento è integrato e non richiede configurazione.

Aspetto delle Finestre della Chat

Le finestre della chat sono larghe 300px su desktop con una freccia di 16px che punta al marker. Le finestre si posizionano automaticamente in base allo spazio disponibile nella viewport, utilizzando classi di posizionamento come to-right, to-left, to-top e to-bottom.

Puoi aggiungere CSS personalizzato per regolare colori, font, spaziatura o altre proprietà visive di queste finestre. Le finestre della chat usano la stessa struttura di componenti del widget standard di FastComments, quindi ereditano qualsiasi personalizzazione globale che hai applicato.

Inizializzazione ritardata

Le finestre della chat si inizializzano al passaggio del mouse per gli utenti desktop o immediatamente quando vengono create. Questo riduce il carico iniziale renderizzando l'interfaccia della chat solo quando gli utenti interagiscono effettivamente con un marker.

L'inizializzazione ritardata avviene in modo trasparente. Gli utenti non notano alcun ritardo, ma il browser non deve renderizzare dozzine di finestre della chat nascoste se hai molti marker su un'immagine.

Localizzazione

Image Chat supporta tutte le stesse opzioni di localizzazione del widget standard di FastComments. Imposta l'opzione locale per visualizzare il testo dell'interfaccia in lingue diverse:

FastCommentsImageChat(imageElement, {
    tenantId: 'demo',
    locale: 'fr'  // Francese
});

FastComments supporta decine di lingue. L'impostazione della locale influisce su tutto il testo dell'interfaccia, inclusi prompt, pulsanti e testo segnaposto.

Opzioni di Personalizzazione Ereditate

Poiché Image Chat estende il widget di commenti standard, eredita tutte le opzioni di personalizzazione del widget base. Questo include classi CSS personalizzate, traduzioni personalizzate, personalizzazione degli avatar, formattazione delle date e molto altro.

Consulta la documentazione principale di personalizzazione di FastComments per l'elenco completo delle opzioni di personalizzazione disponibili.

Uso di Font Personalizzati

Se il tuo sito usa font personalizzati, l'interfaccia di Image Chat erediterà quei font dal CSS della tua pagina. Le finestre della chat vengono renderizzate all'interno del DOM della tua pagina e rispettano le impostazioni tipografiche esistenti.

Per risultati ottimali, assicurati che i tuoi font personalizzati siano caricati prima di inizializzare Image Chat, oppure accetta che possa esserci un breve flash di testo non stilizzato mentre i font vengono caricati.

Design Visivo dei Marker

I marker quadrati hanno un design visivo sottile che li rende visibili senza sovrastare l'immagine. Puoi personalizzare il loro aspetto con il CSS se desideri un trattamento visivo diverso.

I marker includono stati al passaggio del mouse che forniscono un feedback quando gli utenti ci passano sopra con il mouse. Su dispositivi touch, l'interazione tap fornisce un feedback immediato aprendo la finestra della chat.


Sincronizzazione in Tempo Reale Internal Link

Aggiornamenti in tempo reale

Image Chat usa connessioni WebSocket per sincronizzare tutte le conversazioni in tempo reale tra tutti gli utenti connessi. Quando qualcuno crea un nuovo marcatore, aggiunge un commento o elimina una discussione, tutti gli altri utenti che visualizzano la stessa immagine vedono l'aggiornamento immediatamente senza ricaricare.

Come funziona la sincronizzazione via WebSocket

Quando inizializzi Image Chat, il widget stabilisce una connessione WebSocket ai server FastComments. Questa connessione rimane aperta per tutta la durata della sessione dell'utente e ascolta gli aggiornamenti relativi all'immagine corrente.

Il sistema WebSocket utilizza tre tipi di messaggi broadcast per Image Chat. L'evento new-image-chat viene attivato quando qualcuno crea un nuovo marcatore sull'immagine. L'evento image-chat-updated viene attivato quando qualcuno aggiorna una conversazione esistente. L'evento deleted-image-chat viene attivato quando qualcuno elimina un marcatore.

Sistema di Broadcast ID

Per evitare effetti di eco in cui gli utenti vedono le proprie azioni ritrasmesse, ogni aggiornamento include un broadcastId univoco. Quando un utente crea o aggiorna un marcatore, il suo client genera un UUID per quell'operazione. Quando il WebSocket ritrasmette l'aggiornamento a tutti i client, il client di origine ignora l'aggiornamento perché corrisponde al proprio broadcastId.

Questo assicura un'interazione fluida in cui gli utenti vedono immediatamente le proprie modifiche nell'interfaccia senza attendere il round-trip attraverso il server, pur garantendo che tutti gli altri utenti ricevano l'aggiornamento.

Resilienza della connessione

Se la connessione WebSocket cade a causa di problemi di rete o manutenzione del server, il widget tenta automaticamente di riconnettersi. Durante il periodo di riconnessione, gli utenti possono comunque interagire con i marcatori esistenti, ma non vedranno aggiornamenti in tempo reale da altri utenti fino a quando la connessione non sarà ristabilita.

Una volta riconnesso, il widget risincronizza per assicurarsi che non siano stati persi aggiornamenti. Questo avviene in modo trasparente senza richiedere l'intervento dell'utente.

Considerazioni sulla larghezza di banda

I messaggi WebSocket sono leggeri e contengono solo le informazioni essenziali necessarie per sincronizzare lo stato. La creazione di un nuovo marcatore solitamente usa meno di 1KB di larghezza di banda. Il sistema include anche un batching intelligente per ridurre la frequenza dei messaggi durante i periodi di alta attività.

Le metriche di utilizzo nella dashboard di FastComments tracciano pubSubMessageCount e pubSubBandwidth in modo da poter monitorare l'attività di sincronizzazione in tempo reale sui tuoi siti.

Sincronizzazione tra schede

Se un utente ha la stessa pagina aperta in più schede del browser, gli aggiornamenti in una scheda appaiono immediatamente nelle altre. Questo funziona tramite lo stesso meccanismo di sincronizzazione WebSocket e non richiede alcuna configurazione aggiuntiva.

Gli utenti possono avere il tuo sito aperto su più dispositivi contemporaneamente e tutti resteranno sincronizzati. Un marcatore creato su un computer desktop appare istantaneamente sul tablet dell'utente se entrambi i dispositivi stanno visualizzando la stessa immagine.

Sicurezza

I messaggi WebSocket vengono trasmessi su connessioni sicure (WSS) e includono la validazione del tenant per assicurare che gli utenti ricevano solo gli aggiornamenti delle conversazioni per le quali sono autorizzati. Il server valida tutte le operazioni prima di trasmetterle per prevenire accessi o manipolazioni non autorizzate.

Comportamento offline

Quando gli utenti sono completamente offline, possono ancora visualizzare i marcatori esistenti ma non possono crearne di nuovi né vedere gli aggiornamenti degli altri. Il widget rileva lo stato offline e visualizza messaggi appropriati.

Se un utente tenta di creare un marcatore mentre è offline e poi torna online, l'operazione fallirà anziché essere messa in coda, garantendo la coerenza dei dati. Gli utenti devono riprovare l'operazione una volta ripristinata la connessione.

Impatto sulle prestazioni

La connessione WebSocket ha un impatto minimo sulle prestazioni. La connessione rimane inattiva quando non si verificano aggiornamenti e processa messaggi solo quando c'è attività. Su un'immagine tipica con attività moderata di marcatori, il WebSocket usa meno CPU rispetto al rendering dell'immagine stessa.

Per pagine con centinaia di utenti simultanei e alta attività di creazione marcatori, il sistema scala orizzontalmente per mantenere le prestazioni senza influire sulle singole connessioni client.

Casi d'uso collaborativi

La sincronizzazione in tempo reale rende Image Chat particolarmente potente per flussi di lavoro collaborativi. I team di design possono rivedere insieme i mockup con tutti che vedono le posizioni dei marcatori in tempo reale. I team di supporto clienti possono annotare collaborativamente screenshot per identificare problemi. I gruppi educativi possono discutere diagrammi con tutti i partecipanti che vedono i marcatori degli altri mentre vengono creati.

Il feedback immediato crea un'esperienza collaborativa più coinvolgente e produttiva rispetto ai sistemi di commento tradizionali in cui gli utenti devono aggiornare la pagina per vedere gli aggiornamenti.



Hai domande?

Questo è tutto per FastComments Image Chat! Se hai domande, hai bisogno di aiuto con l'implementazione o vuoi suggerire funzionalità, faccelo sapere qui sotto oppure contatta il nostro team di supporto.

Guarda la demo live sulla nostra pagina demo per vedere Image Chat in azione.