FastComments.com

Billedchat

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

Procentbaseret Positionering

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 klikkets pixelkoordinater til procenter af billedets bredde og højde. Denne tilgang sikrer, at markører forbliver på det korrekte sted 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 500px bredt på en mobil enhed, vises markøren 125 pixels fra venstre, hvilket stadig er 25% af bredden.

Fordele ved Responsive Layouts

Dette procentsystem gør, at Image Chat fungerer problemfrit på alle enhedsstørrelser og orienteringer. Dine billeder kan vises i forskellige størrelser afhængigt af skærmbredde, CSS-regler eller containerbegrænsninger, men markørerne justeres altid korrekt i forhold til 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.

Billedskalering og Aspektforhold

Så længe dit billede bevarer sit aspektforhold ved skalering (hvilket er browserens standardadfærd), forbliver de procentbaserede markører perfekt justeret. Widgetten antager, at billeder skalerer proportionalt, og beregner positioner ud fra denne antagelse.

Hvis du anvender CSS, der forvrider billedets aspektforhold (som at bruge object-fit: cover med specifikke dimensioner), stemmer markørpositionerne muligvis ikke overens. For de bedste resultater, lad billeder skalere naturligt eller brug object-fit: contain for at bevare aspektforholdet.

Størrelse af Chatkvadrater

Den visuelle størrelse af chatmarkørerne er også procentbaseret. Konfigurationsindstillingen chatSquarePercentage er som standard 5%, hvilket betyder, at hvert kvadrat er 5% af billedets bredde. Dette sikrer en ensartet visuel vægt på tværs af forskellige billedstørrelser.

På et 1000px bredt billede med standardindstillingen på 5% er markørerne 50px i kvadrat. På et 500px bredt billede er de samme markører 25px i kvadrat. De forbliver proportionale med billedstørrelsen.

Mobiladfærd

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

Markørerne selv 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 fuldskærm.

Dynamisk Billedindlæsning

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

Hvis du lazy-loader billeder eller implementerer responsive billeder med forskellige størrelser ved forskellige breakpoints, justeres markørerne automatisk, når billedstørrelsen ændres.

Konsistens på Tværs af Enheder

Fordi koordinaterne gemmes som procenter i databasen, vises en diskussion, der oprettes 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 nogen positioneringsinkonsistenser.

Dette fungerer i begge retninger. En diskussion, der oprettes ved at trykke på et bestemt sted på en mobil enhed, vises på samme relative position, når den ses på en stor stationær skærm.

Betragtninger om Viewport

Widgetten beregner procenter i forhold til selve billedelementet, ikke viewporten. Det betyder, at rulning på siden eller ændring af browserens vinduesstørrelse ikke påvirker markørpositionerne. Markørerne forbliver forankret til deres placeringer på billedet uanset ændringer i viewporten.

Fremtidssikring af Indhold

Den procentbaserede tilgang gør dine billedediskussioner modstandsdygtige over for ændringer i layout, design eller enhedsøkosystemet. Efterhånden som nye skærmstørrelser og enheder opstår, vil de eksisterende diskussioner fortsætte med at vises 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 alt for FastComments Image Chat! Hvis du har spørgsmål, har brug for hjælp til implementeringen eller har forslag til funktioner, så lad os det vide nedenfor eller kontakt vores supportteam.

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