FastComments.com

FastComments Image Chat omogućuje interaktivne rasprave na slikama tako da korisnicima dopušta da kliknu bilo gdje na slici kako bi stvorili točke za raspravu. Korisnici mogu kliknuti na određene dijelove slika kako bi započeli razgovore o tim područjima, stvarajući vizualne oznake koje pokazuju gdje se rasprave nalaze.

Ova značajka je savršena za povratne informacije o dizajnu, recenzije proizvoda, obrazovne materijale s dijagramima, foto galerije s komentarima i bilo koji scenarij u kojem želite kontekstualne rasprave vezane uz određene lokacije na slici.

Responzivni dizajn Internal Link

Percentage-Based Positioning

Image Chat koristi koordinate temeljene na postocima umjesto pikselnih koordinata za pozicioniranje markera razgovora na slikama. Kada korisnik klikne na sliku, widget pretvara pikselne koordinate klika u postotke širine i visine slike. Ovaj pristup osigurava da markeri ostanu na ispravnom mjestu bez obzira na način prikaza slike.

Na primjer, ako korisnik klikne 250 piksela od lijeve ivice slike širine 1000px, widget to pohranjuje kao 25% od lijeve strane. Kada drugi korisnik pogleda istu sliku široku 500px na mobilnom uređaju, marker se pojavljuje 125 piksela od lijeve strane, što je opet 25% širine.

Benefits for Responsive Layouts

Sustav temeljen na postocima omogućuje da Image Chat besprijekorno radi na svim veličinama i orijentacijama uređaja. Vaše se slike mogu prikazivati u različitim veličinama ovisno o širini ekrana, CSS pravilima ili ograničenjima kontejnera, ali se markeri uvijek pravilno poravnaju s namjenjenim lokacijama.

Korisnici na stolnim računalima s velikim monitorima vide markere na istim relativnim pozicijama kao i korisnici na pametnim telefonima s malim ekranima. Markeri se proporcionalno skaliraju sa samom slikom.

Image Scaling and Aspect Ratio

Dokle god vaša slika zadržava svoj omjer širine i visine pri skaliranju (što je zadano ponašanje preglednika), markeri temeljeni na postocima ostat će savršeno poravnati. Widget pretpostavlja da se slike proporcionalno skaliraju i izračunava pozicije na temelju te pretpostavke.

Ako primijenite CSS koji izobličuje omjer slike (kao npr. korištenjem object-fit: cover s određenim dimenzijama), pozicije markera možda se neće pravilno poravnati. Za najbolje rezultate dopustite slikama da se prirodno skaliraju ili koristite object-fit: contain kako biste održali omjer.

Chat Square Sizing

Vizualna veličina markera razgovora također je temeljena na postotcima. Opcija konfiguracije chatSquarePercentage zadano je postavljena na 5%, što znači da je svaki kvadrat 5% širine slike. To osigurava konzistentnu vizualnu težinu na različitim veličinama slika.

Na slici širine 1000px sa zadanim postavkama od 5%, markeri su kvadratni od 50px. Na slici širine 500px isti markeri su kvadratni od 25px. Oni ostaju proporcionalni veličini slike.

Mobile Behavior

Na zaslonima širine manjom od 768px, Image Chat prelazi na izgled optimiziran za mobilne uređaje. Prozori razgovora se otvaraju preko cijelog zaslona umjesto da lebde pored markera. To poboljšava upotrebljivost na malim ekranima gdje bi lebdeći prozori previše zakrivali sliku.

Sami markeri ostaju vidljivi i klikabilni na svojim pozicijama temeljenim na postocima. Korisnici i dalje mogu vidjeti gdje se nalaze sve rasprave i dodirnuti markere kako bi otvorili sučelje za razgovor preko cijelog zaslona.

Dynamic Image Loading

Sustav temeljen na postocima radi ispravno čak i kada se slike učitavaju asinkrono ili mijenjaju veličinu nakon učitavanja stranice. Widget prati element slike i preračunava pozicije markera kad god se dimenzije slike promijene.

Ako koristite lijeno učitavanje slika ili implementirate responzivne slike s različitim veličinama na različitim prekidnim točkama, markeri se automatski prilagođavaju kada se veličina slike promijeni.

Cross-Device Consistency

Budući da se koordinate pohranjuju u bazi podataka kao postoci, rasprava stvorena na stolnom računalu pojavljuje se na točno istoj relativnoj lokaciji kada se pogleda na tabletu ili telefonu. Korisnici mogu surađivati preko uređaja bez bilo kakvih neslaganja u pozicioniranju.

Ovo radi obostrano. Rasprava stvorena dodirom određene točke na mobilnom uređaju pojavljuje se na istoj relativnoj poziciji kada se pogleda na velikom stolnom monitoru.

Viewport Considerations

Widget izračunava postotke u odnosu na sam element slike, a ne u odnosu na viewport. To znači da pomicanje stranice ili promjena veličine prozora preglednika ne utječe na pozicije markera. Markeri ostaju vezani za svoje lokacije na slici bez obzira na promjene prikaza.

Future-Proofing Content

Pristup temeljen na postocima čini vaše rasprave o slikama otpornima na promjene u izgledu, dizajnu ili ekosustavu uređaja. Kako se pojavljuju nove veličine zaslona i uređaji, postojeće rasprave nastavit će se pravilno prikazivati bez potrebe za ažuriranjima ili migracijama.

Prilagodba Internal Link

Podrška za tamni način

Image Chat uključuje ugrađenu podršku za tamni način. Kada postavite hasDarkBackground: true u svojoj konfiguraciji, prozori chata i UI elementi automatski se prilagođavaju kako bi dobro funkcionirali na tamnim pozadinama.

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

Stilizacija tamnog načina primjenjuje se na prozore chata, kvadratiće markera i sve interaktivne elemente. Ako vaša stranica ima prekidač za tamni način, možete ponovo inicijalizirati widget kada se način promijeni, ili koristiti pristup s klasom body opisan u nastavku.

Dinamički tamni način

Ako je tamni način na vašoj stranici kontroliran dodavanjem klase .dark na element body, Image Chat UI će automatski poštovati to bez potrebe za ponovnom inicijalizacijom. Stilovi widgeta su dizajnirani da reagiraju na prisutnost te klase.

/* Vaš CSS za tamni način */
body.dark {
    background: #1a1a1a;
    color: #ffffff;
}

Prilagođavanje stila pomoću CSS-a

Možete prilagoditi izgled markera, prozora chata i drugih elemenata pomoću CSS-a. Widget dodaje posebne klase koje možete ciljati u svom stylesheetu.

Chat kvadratići i prozori koriste FastComments sustav stiliziranja komentarskih oblačića, pa će sve prilagodbe koje ste primijenili na standardni widget za komentiranje također utjecati na Image Chat.

Veličina chat kvadratića

Opcija chatSquarePercentage kontrolira veličinu klikabilnih markera. Zadana vrijednost je 5% širine slike:

FastCommentsImageChat(imageElement, {
    tenantId: 'demo',
    chatSquarePercentage: 7  // Veće, vidljivije kvadratiće
});

Manje vrijednosti stvaraju diskretnije markere koji se bolje uklapaju u sliku. Veće vrijednosti čine markere istaknutijima i lakšima za klik, posebno na mobilnim uređajima ili iz pristupačnih razloga.

Ponašanje na mobilnim uređajima

Na ekranima širim manje od 768px, Image Chat se automatski prebacuje na layout optimiziran za mobilne uređaje. Prozori chata se prikazuju preko cijelog zaslona umjesto da plutaju pored markera, što poboljšava upotrebljivost na malim ekranima.

Markeri ostaju vidljivi na svojim responzivnim pozicijama na slici. Korisnici mogu dodirnuti bilo koji marker da otvore fullscreen sučelje chata. Ovo ponašanje je ugrađeno i ne zahtijeva konfiguraciju.

Izgled prozora chata

Prozori chata imaju širinu od 300px na desktopu s 16px strelicom koja pokazuje na marker. Prozori se automatski pozicioniraju na temelju dostupnog prostora u viewportu, koristeći klase pozicioniranja poput to-right, to-left, to-top i to-bottom.

Možete dodati prilagođeni CSS za podešavanje boja, fontova, razmaka ili drugih vizualnih svojstava ovih prozora. Prozori chata koriste istu strukturu komponenti kao standardni FastComments widget, pa nasljeđuju sve globalne prilagodbe koje ste primijenili.

Lenja inicijalizacija

Prozori chata se inicijaliziraju pri hoveru za desktop korisnike ili odmah kada su stvoreni. Time se smanjuje početno opterećenje učitavanja jer se sučelje chata renderira samo kada korisnici zapravo komuniciraju s markerom.

Lenja inicijalizacija se odvija transparentno. Korisnici ne primjećuju kašnjenje, ali pregledniku nije potrebno renderirati desetke skrivenih prozora chata ako imate mnogo markera na slici.

Lokalizacija

Image Chat podržava sve iste opcije lokalizacije kao standardni FastComments widget. Postavite opciju locale za prikaz UI teksta na različitim jezicima:

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

FastComments podržava desetke jezika. Postavka lokaliteta utječe na sav UI tekst uključujući upite, gumbe i tekst mjesta za unos.

Naslijeđene opcije prilagodbe

Budući da Image Chat proširuje standardni widget za komentiranje, nasljeđuje sve opcije prilagodbe iz osnovnog widgeta. To uključuje prilagođene CSS klase, prilagođene prijevode, prilagodbu avatara, formatiranje datuma i mnogo više.

Pogledajte glavnu FastComments dokumentaciju o prilagodbi za potpuni popis dostupnih opcija prilagodbe.

Rad s prilagođenim fontovima

Ako vaša stranica koristi prilagođene fontove, Image Chat UI će naslijediti te fontove iz CSS-a vaše stranice. Prozori chata renderiraju unutar DOM-a vaše stranice i poštuju postojeća tipografska podešavanja.

Za najbolje rezultate, osigurajte da su vaši prilagođeni fontovi učitani prije inicijalizacije Image Chat-a, ili prihvatite da može doći do kratkog treptaja nestiliziranog teksta dok se fontovi učitavaju.

Vizualni dizajn markera

Kvadratni marker ima suptilan vizualni dizajn koji ga čini uočljivim bez preplavljivanja slike. Možete prilagoditi njihov izgled pomoću CSS-a ako želite drugačiji vizualni pristup.

Markeri sadrže hover stanja koja daju povratnu informaciju kada korisnici pomaknu miš preko njih. Na uređajima na dodir, interakcija dodirom daje neposrednu povratnu informaciju otvaranjem prozora chata.

Sinkronizacija uživo Internal Link

Real-Time Updates

Image Chat koristi WebSocket veze za sinkronizaciju svih razgovora u stvarnom vremenu između svih povezanih korisnika. Kada netko stvori novu oznaku, doda komentar ili obriše raspravu, svi ostali korisnici koji gledaju istu sliku vide ažuriranje odmah, bez osvježavanja.

How WebSocket Sync Works

Kada inicijalizirate Image Chat, widget uspostavlja WebSocket vezu prema FastComments serverima. Ta veza ostaje otvorena tijekom korisničke sesije i sluša ažuriranja vezana uz trenutnu sliku.

WebSocket sustav koristi tri vrste broadcast poruka za Image Chat. Događaj new-image-chat se pokreće kada netko stvori novu oznaku na slici. Događaj image-chat-updated se pokreće kada netko ažurira postojeći razgovor. Događaj deleted-image-chat se pokreće kada netko obriše oznaku.

Broadcast ID System

Kako bi se spriječili echo efekti gdje korisnici vide vlastite radnje koje im se ponovno emitiraju, svako ažuriranje uključuje jedinstveni broadcastId. Kada korisnik stvori ili ažurira oznaku, njihov klijent generira UUID za tu operaciju. Kad WebSocket emitira ažuriranje natrag svim klijentima, izvorni klijent zanemaruje ažuriranje jer odgovara njegovom vlastitom broadcastId.

To osigurava glatku interakciju u kojoj korisnici vide svoje promjene odmah u UI bez čekanja za putovanje do servera i natrag, a istovremeno svi drugi korisnici dobivaju ažuriranje.

Connection Resilience

Ako WebSocket veza padne zbog mrežnih problema ili održavanja servera, widget automatski pokušava ponovno uspostaviti vezu. Tijekom razdoblja ponovnog povezivanja, korisnici i dalje mogu manipulirati postojećim oznakama, ali neće vidjeti ažuriranja od drugih korisnika dok veza ne bude ponovno uspostavljena.

Kada se veza ponovno uspostavi, widget se resinkronizira kako bi osigurao da nijedno ažuriranje nije propušteno. To se događa transparentno bez potrebe za intervencijom korisnika.

Bandwidth Considerations

WebSocket poruke su male i sadrže samo esencijalne informacije potrebne za sinkronizaciju stanja. Kreiranje nove oznake obično koristi manje od 1KB bandwidtha. Sustav također uključuje inteligentno grupiranje poruka kako bi smanjio učestalost poruka tijekom razdoblja velike aktivnosti.

Vaše metrike korištenja na FastComments nadzornoj ploči prate pubSubMessageCount i pubSubBandwidth kako biste mogli nadzirati aktivnost sinkronizacije u stvarnom vremenu preko vaših stranica.

Cross-Tab Synchronization

Ako korisnik ima istu stranicu otvorenu u više pregledničkih kartica, ažuriranja u jednoj kartici pojavljuju se odmah u drugim karticama. To radi kroz isti WebSocket mehanizam za sinkronizaciju i ne zahtijeva dodatnu konfiguraciju.

Korisnici mogu imati vašu stranicu otvorenu na više uređaja istovremeno, i svi će ostati sinkronizirani. Oznaka kreirana na stolnom računalu pojavljuje se instantno na korisnikovom tabletu ako oba uređaja gledaju istu sliku.

Security

WebSocket poruke se prenose preko sigurnih veza (WSS) i uključuju validaciju najamnika kako bi se osiguralo da korisnici primaju samo ažuriranja za razgovore koje su ovlašteni vidjeti. Server validira sve operacije prije nego što ih emitira kako bi sprječavao neovlašteni pristup ili manipulaciju.

Offline Behavior

Kada su korisnici potpuno offline, i dalje mogu pregledavati postojeće oznake, ali ne mogu stvarati nove niti vidjeti ažuriranja od drugih. Widget detektira offline stanje i prikazuje odgovarajuću poruku.

Ako korisnik pokuša stvoriti oznaku dok je offline, a zatim se vrati online, operacija će ne uspjeti umjesto da se stavi na čekanje, čime se osigurava konzistentnost podataka. Korisnici bi trebali pokušati ponovo kad im se veza ponovno uspostavi.

Performance Impact

WebSocket veza ima minimalan utjecaj na performanse. Veza ostaje neaktivna kad se ne događaju ažuriranja i obrađuje poruke samo kada ima aktivnosti. Na tipičnoj slici s umjerenom aktivnošću oznaka, WebSocket koristi manje CPU-a nego samo renderiranje slike.

Za stranice s stotinama istodobnih korisnika i velikom aktivnošću kreiranja oznaka, sustav se horizontalno skalira kako bi održao performanse bez utjecaja na pojedinačne klijentske veze.

Collaborative Use Cases

Sinkronizacija u stvarnom vremenu čini Image Chat posebno moćnim za kolaborativne tijekove rada. Timovi za dizajn mogu zajednički pregledavati makete pri čemu svi vide pozicioniranja oznaka u stvarnom vremenu. Timovi za korisničku podršku mogu zajednički anotirati snimke zaslona kako bi identificirali probleme. Edukacijske grupe mogu raspravljati o dijagramima pri čemu svi sudionici vide oznake drugih kako se stvaraju.

Trenutna povratna informacija stvara angažiranije i produktivnije kolaborativno iskustvo u usporedbi s tradicionalnim sustavima komentiranja gdje korisnici moraju osvježiti stranicu da bi vidjeli ažuriranja.


Imate li pitanja?

To je sve za FastComments Image Chat! Ako imate bilo kakvih pitanja, trebate pomoć pri implementaciji ili imate prijedloge za značajke, molimo javite nam u nastavku ili se obratite našem timu za podršku.

Pogledajte demonstraciju uživo na našoj demo stranici da biste vidjeli Image Chat u akciji.