FastComments.com

FastComments Image Chat muliggør interaktive diskussioner om billeder ved at lade brugere klikke hvor som helst på et billede for at oprette diskussionspunkter. Brugere kan klikke på specifikke dele af billeder for at starte samtaler om de områder, hvilket skaber visuelle markører, der viser, hvor diskussionerne er placeret.

Funktionen er perfekt til designfeedback, produktanmeldelser, undervisningsmateriale med diagrammer, fotogallerier med kommentarer og enhver situation, hvor du ønsker kontekstuelle diskussioner forankret til bestemte placeringer på billeder.

Responsivt design Internal Link

Percentage-Based Positioning

Image Chat bruger procentbaserede koordinater i stedet for pixelkoordinater til at placere chatmarkører på billeder. Når en bruger klikker på et billede, konverterer widgetten pixelkoordinaterne for klikket til procenter af billedets bredde og højde. Denne tilgang sikrer, at markørerne forbliver korrekt placeret uanset hvordan billedet vises.

For eksempel, hvis en bruger klikker 250 pixels fra venstre kant af et 1000px bredt billede, gemmer widgetten dette som 25% fra venstre. Når en anden bruger ser det samme billede ved 500px bredde på en mobil enhed, vises markøren 125 pixels fra venstre, hvilket stadig er 25% af bredden.

Benefits for Responsive Layouts

Dette procent-system får Image Chat til at fungere problemfrit på tværs af alle enhedsstørrelser og orienteringer. Dine billeder kan blive vist i forskellige størrelser afhængigt af skærmbredden, CSS-regler eller containerbegrænsninger, men markørerne aligner altid korrekt med de tilsigtede placeringer.

Brugere på stationære computere med store skærme ser markørerne i de samme relative positioner som brugere på smartphones med små skærme. Markørerne skalerer proportionalt med selve billedet.

Image Scaling and Aspect Ratio

Så længe dit billede bevarer sit billedforhold ved skalering (hvilket er standardadfærden i browseren), forbliver de procentbaserede markører perfekt justerede. Widgetten antager, at billeder skalerer proportionalt og beregner positioner baseret på denne antagelse.

Hvis du anvender CSS, der fordrejer billedets billedforhold (som ved brug af object-fit: cover med specifikke dimensioner), kan markørpositionerne muligvis ikke alignere korrekt. For bedst resultat, lad billederne skalere naturligt eller brug object-fit: contain for at bevare billedforholdet.

Chat Square Sizing

Den visuelle størrelse af chatmarkørerne er også procentbaseret. The chatSquarePercentage configuration option defaults to 5%, meaning each square is 5% of the image width. Dette sikrer en konsekvent visuel vægt på tværs af forskellige billedstørrelser.

På et 1000px bredt billede med standardindstillingen på 5% er markørerne 50px kvadratiske. På et 500px bredt billede er de samme markører 25px kvadratiske. De forbliver proportionale i forhold til billedets størrelse.

Mobile Behavior

På skærme under 768px bredde skifter Image Chat til et mobiloptimeret layout. Chatvinduer åbnes i fuld skærm i stedet for at flyde ved siden af markøren. Dette giver bedre brugervenlighed på små skærme, hvor flydende vinduer ville dække for meget af billedet.

Selve markørerne forbliver synlige og klikbare på deres procentbaserede positioner. Brugere kan stadig se, hvor alle diskussioner er placeret, og trykke på markører for at åbne chatgrænsefladen i fuld skærm.

Dynamic Image Loading

Det procentbaserede system fungerer korrekt selv når billeder indlæses asynkront eller ændrer størrelse efter siden er indlæst. Widgetten overvåger billedelementet og genberegner markørpositioner hver gang billedets dimensioner ændrer sig.

Hvis du bruger lazy-loading af billeder eller implementerer responsive billeder med forskellige størrelser ved forskellige brudpunkter, justerer markørerne sig automatisk, når billedets størrelse ændres.

Cross-Device Consistency

Fordi koordinater gemmes som procenter i databasen, vises en diskussion oprettet på en stationær computer på præcis samme relative placering, når den ses på en tablet eller telefon. Brugere kan samarbejde på tværs af enheder uden positioneringsinkonsistenser.

Dette virker tovejssikkert. En diskussion oprettet ved at trykke på et specifikt sted på en mobil enhed vises på samme relative position, når den ses på en stor desktopskærm.

Viewport Considerations

Widgetten beregner procenter relativt til selve billedelementet, ikke visningsområdet. Det betyder, at scrolling af siden eller ændring af browservinduesstørrelse ikke påvirker markørpositionerne. Markørerne forbliver forankrede til deres placeringer på billedet uanset ændringer i visningsområdet.

Future-Proofing Content

Den procentbaserede tilgang gør dine billeddiskussioner robuste over for ændringer i layout, design eller enhedsøkosystemet. Efterhånden som nye skærmstørrelser og enheder dukker op, vil de eksisterende diskussioner fortsætte med at blive vist korrekt uden at kræve opdateringer eller migreringer.

Tilpasning Internal Link

Understøttelse af mørk tilstand

Image Chat inkluderer indbygget understøttelse af mørk tilstand. Når du sætter hasDarkBackground: true i din konfiguration, justerer chatvinduerne og UI-elementerne sig automatisk, så de fungerer godt på mørke baggrunde.

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

Stilen for mørk tilstand gælder for chatvinduer, markeringsfirkanter og alle interaktive elementer. Hvis dit site har en skiftefunktion for mørk tilstand, kan du geninitialisere widget'en, når tilstanden ændres, eller bruge body-klasse-tilgangen beskrevet nedenfor.

Dynamisk mørk tilstand

Hvis dit sites mørke tilstand styres ved at tilføje en .dark klasse til body-elementet, vil Image Chat UI automatisk respektere dette uden at kræve geninitialisering. Widget'ens styles er designet til at reagere på tilstedeværelsen af denne klasse.

/* Din CSS til mørk tilstand */
body.dark {
    background: #1a1a1a;
    color: #ffffff;
}

Tilpasset styling med CSS

Du kan tilpasse udseendet af markører, chatvinduer og andre elementer ved hjælp af CSS. Widget'en tilføjer specifikke klasser, som du kan målrette i dit stylesheet.

Chat-firkanterne og vinduerne bruger FastComments' kommentarboble-styling, så eventuelle tilpasninger, du har anvendt på den standard kommenteringswidget, også vil påvirke Image Chat.

Størrelse på chat-firkanter

Optionen chatSquarePercentage kontrollerer størrelsen på de klikbare markører. Standardværdien er 5% af billedets bredde:

FastCommentsImageChat(imageElement, {
    tenantId: 'demo',
    chatSquarePercentage: 7  // Større, mere synlige firkanter
});

Mindre værdier skaber mere diskrete markører, der blander sig med billedet. Større værdier gør markørerne mere fremtrædende og lettere at klikke på, især på mobile enheder eller med henblik på tilgængelighed.

Mobiladfærd

På skærme under 768px i bredden skifter Image Chat automatisk til et mobiloptimeret layout. Chatvinduer vises i fuld skærm i stedet for at flyde ved siden af markørerne, hvilket giver bedre brugervenlighed på små skærme.

Markørerne forbliver synlige på deres responsive positioner på billedet. Brugere kan trykke på en vilkårlig markør for at åbne den fulde chatgrænseflade. Denne adfærd er indbygget og kræver ingen konfiguration.

Udseende af chatvinduer

Chatvinduer er 300px brede på desktop med en 16px pil, der peger på markøren. Vinduerne positionerer sig automatisk baseret på tilgængelig plads i viewporten ved hjælp af positioneringsklasser som to-right, to-left, to-top og to-bottom.

Du kan tilføje brugerdefineret CSS for at justere farver, skrifttyper, afstande eller andre visuelle egenskaber af disse vinduer. Chatvinduerne bruger samme komponentstruktur som den standard FastComments-widget, så de arver alle globale tilpasninger, du har anvendt.

Forsinket initialisering

Chatvinduer initialiseres ved hover for desktop-brugere eller øjeblikkeligt, når de oprettes. Dette reducerer den indledende load-overhead ved kun at rendere chatgrænsefladen, når brugere rent faktisk interagerer med en markør.

Den forsinkede initialisering sker transparent. Brugerne bemærker ikke nogen forsinkelse, men browseren behøver ikke at rende snesevis af skjulte chatvinduer, hvis du har mange markører på et billede.

Lokalisering

Image Chat understøtter alle de samme lokaliseringsmuligheder som den standard FastComments-widget. Sæt optionen locale for at vise UI-tekst på forskellige sprog:

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

FastComments understøtter dusinvis af sprog. Locale-indstillingen påvirker al UI-tekst inklusive prompts, knapper og pladsholdertekst.

Arvede tilpasningsmuligheder

Da Image Chat udvider den standard kommenteringswidget, arver den alle tilpasningsmuligheder fra basiswidget'en. Dette inkluderer brugerdefinerede CSS-klasser, tilpassede oversættelser, avatartilpasning, datoformattering og meget mere.

Se hoveddokumentationen for FastComments-tilpasning for den komplette liste over tilpasningsmuligheder, der er tilgængelige.

Arbejde med tilpassede skrifttyper

Hvis dit site bruger tilpassede skrifttyper, arver Image Chat UI disse skrifttyper fra din sides CSS. Chatvinduerne renderes inde i din sides DOM og respekterer dine eksisterende typografiske indstillinger.

For bedste resultat, sørg for at dine tilpassede skrifttyper er indlæst, før du initialiserer Image Chat, eller accepter at der kan forekomme et kort øjeblik med ustylet tekst, mens skrifttyperne indlæses.

Visuelt design af markører

De firkantede markører har et subtilt visuelt design, der gør dem bemærkelsesværdige uden at overvælde billedet. Du kan tilpasse deres udseende med CSS, hvis du ønsker en anden visuel behandling.

Markørerne inkluderer hover-tilstande, der giver feedback, når brugere bevæger musen over dem. På touch-enheder giver trykinteraktionen øjeblikkelig feedback ved at åbne chatvinduet.


Live-synkronisering Internal Link

Opdateringer i realtid

Image Chat bruger WebSocket-forbindelser til at synkronisere alle samtaler i realtid på tværs af alle tilsluttede brugere. Når nogen opretter en ny markør, tilføjer en kommentar eller sletter en diskussion, ser alle andre brugere, der ser det samme billede, opdateringen med det samme uden at opdatere siden.

Hvordan WebSocket-synkronisering fungerer

Når du initialiserer Image Chat, etablerer widget'en en WebSocket-forbindelse til FastComments-serverne. Denne forbindelse forbliver åben i hele brugerens session og lytter efter opdateringer relateret til det aktuelle billede.

WebSocket-systemet bruger tre typer broadcast-beskeder til Image Chat. new-image-chat-begivenheden udløses, når nogen opretter en ny markør på billedet. image-chat-updated-begivenheden udløses, når nogen opdaterer en eksisterende samtale. deleted-image-chat-begivenheden udløses, når nogen sletter en markør.

Broadcast ID-system

For at forhindre ekkoeffekter, hvor brugere ser deres egne handlinger blive sendt tilbage til dem, indeholder hver opdatering et unikt broadcastId. Når en bruger opretter eller opdaterer en markør, genererer deres klient en UUID til den handling. Når WebSocket'en udsender opdateringen tilbage til alle klienter, ignorerer den oprindelige klient opdateringen, fordi den matcher sit eget broadcastId.

Dette sikrer en glidende interaktion, hvor brugere ser deres ændringer med det samme i brugergrænsefladen uden at skulle vente på rundturen gennem serveren, samtidig med at alle andre brugere får opdateringen.

Forbindelsesrobusthed

Hvis WebSocket-forbindelsen falder på grund af netværksproblemer eller servervedligeholdelse, forsøger widget'en automatisk at genoprette forbindelsen. I genoprettelsesperioden kan brugerne stadig interagere med eksisterende markører, men de vil ikke se realtidsopdateringer fra andre brugere, før forbindelsen er genoprettet.

Når forbindelsen er genoprettet, resynkroniserer widget'en for at sikre, at ingen opdateringer er gået tabt. Dette sker transparent uden at kræve brugerindgriben.

Overvejelser om båndbredde

WebSocket-beskeder er lette og indeholder kun de nødvendige oplysninger til at synkronisere tilstanden. Oprettelse af en ny markør bruger typisk mindre end 1KB båndbredde. Systemet inkluderer også intelligent batching for at reducere beskedfrekvensen i perioder med høj aktivitet.

Dine brugermålinger i FastComments-dashboardet sporer pubSubMessageCount og pubSubBandwidth, så du kan overvåge realtids-synkroniseringsaktivitet på tværs af dine sites.

Synkronisering på tværs af faner

Hvis en bruger har samme side åben i flere browserfaner, vises opdateringer i én fane med det samme i de andre faner. Dette fungerer gennem den samme WebSocket-synkroniseringsmekanisme og kræver ingen yderligere konfiguration.

Brugere kan have dit site åbent på flere enheder samtidigt, og alle vil forblive synkroniserede. En markør oprettet på en stationær computer vises øjeblikkeligt på brugerens tablet, hvis begge enheder ser det samme billede.

Sikkerhed

WebSocket-beskeder sendes over sikre forbindelser (WSS) og inkluderer tenant-validering for at sikre, at brugere kun modtager opdateringer til samtaler, de er autoriserede til at se. Serveren validerer alle handlinger, før de udsendes, for at forhindre uautoriseret adgang eller manipulation.

Offline-adfærd

Når brugere er helt offline, kan de stadig se eksisterende markører, men de kan ikke oprette nye eller se opdateringer fra andre. Widget'en registrerer offline-tilstanden og viser passende beskeder.

Hvis en bruger forsøger at oprette en markør, mens vedkommende er offline, og senere går online igen, vil handlingen fejle i stedet for at blive køet, for at sikre datakonsistens. Brugere bør prøve handlingen igen, når deres forbindelse er gendannet.

Indvirkning på ydeevnen

WebSocket-forbindelsen har minimal indvirkning på ydeevnen. Forbindelsen forbliver inaktiv, når der ikke sker opdateringer, og behandler kun beskeder, når der er aktivitet. På et typisk billede med moderat markøraktivitet bruger WebSocket'en mindre CPU end selve gengivelsen af billedet.

For sider med hundredevis af samtidige brugere og høj aktivitet i oprettelse af markører skalerer systemet horisontalt for at opretholde ydeevnen uden at påvirke individuelle klientforbindelser.

Samarbejdsbrugstilfælde

Realtidssynkroniseringen gør Image Chat særligt stærkt til samarbejdsarbejdsgange. Designteams kan gennemgå mockups sammen, hvor alle ser markørplaceringer i realtid. Kundesupportteams kan i fællesskab annotere skærmbilleder for at identificere problemer. Undervisningsgrupper kan diskutere diagrammer, hvor alle deltagere ser hinandens markører, efterhånden som de oprettes.

Den umiddelbare feedback skaber en mere engagerende og produktiv samarbejdsoplevelse sammenlignet med traditionelle kommentarsystemer, hvor brugere skal opdatere siden for at se opdateringer.


Har du spørgsmål?

Det var det for FastComments Image Chat! Hvis du har spørgsmål, har brug for hjælp til implementering eller har forslag til funktioner, så giv os besked nedenfor eller kontakt vores supportteam.

Se live-demoen på vores demo-side for at se Image Chat i aktion.