FastComments.com

FastComments Image Chat omogućava interaktivne diskusije na slikama tako što korisnicima omogućava da kliknu bilo gde na slici kako bi kreirali tačke diskusije. Korisnici mogu da kliknu na određene delove slike da započnu razgovore o tim oblastima, stvarajući vizuelne markere koji pokazuju gde se diskusije nalaze.

Ova funkcija je savršena za povratne informacije o dizajnu, recenzije proizvoda, obrazovni materijal sa dijagramima, foto-galerije sa komentarima, i bilo koji scenario u kojem želite kontekstualne diskusije vezane za određene lokacije na slici.

Responzivni dizajn Internal Link

Pozicioniranje zasnovano na procentima

Image Chat koristi koordinate zasnovane na procentima umesto piksel-koordinata za pozicioniranje markera chata na slikama. Kada korisnik klikne na sliku, widget konvertuje piksel-koordinate klika u procente širine i visine slike. Ovakav pristup osigurava da markeri ostanu na ispravnoj lokaciji bez obzira na to kako se slika prikazuje.

Na primer, ako korisnik klikne 250 piksela od levog ruba slike širine 1000px, widget to čuva kao 25% od leve strane. Kada drugi korisnik pogleda istu sliku širine 500px na mobilnom uređaju, marker se pojavljuje na 125 piksela od leve strane, što je i dalje 25% širine.

Prednosti za responzivne rasporede

Ovaj sistem zasnovan na procentima omogućava da Image Chat radi besprekorno na svim veličinama uređaja i orijentacijama. Vaše slike mogu biti prikazane u različitim veličinama u zavisnosti od širine ekrana, CSS pravila ili ograničenja kontejnera, ali markeri su uvek pravilno poravnati sa predviđenim lokacijama.

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

Skaliranje slike i odnos stranica

Sve dok vaša slika održava odnos stranica pri skaliranju (što je podrazumevano ponašanje pretraživača), markeri zasnovani na procentima će ostati savršeno poravnati. Widget pretpostavlja da se slike skaliraju proporcionalno i izračunava pozicije na osnovu te pretpostavke.

Ako primenite CSS koji izobličava odnos stranica slike (npr. koristeći object-fit: cover sa specifičnim dimenzijama), pozicije markera možda neće biti pravilno poravnate. Za najbolje rezultate, dozvolite slikama da se prirodno skaliraju ili koristite object-fit: contain da održite odnos stranica.

Veličina kvadrata markera

Vizuelna veličina chat markera je takođe zasnovana na procentima. Opcija konfiguracije chatSquarePercentage ima podrazumevanu vrednost 5%, što znači da je svaki kvadrat 5% širine slike. Ovo osigurava konzistentnu vizuelnu težinu na različitim veličinama slika.

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

Ponašanje na mobilnim uređajima

Na ekranima širinе ispod 768px, Image Chat prelazi na izgled optimizovan za mobilne uređaje. Chat prozori se otvaraju celozaslonski umesto da plutaju pored markera. Ovo pruža bolju upotrebljivost na malim ekranima gde bi plutajući prozori previše zaklanjali sliku.

Sami markeri ostaju vidljivi i klikabilni na svojim pozicijama zasnovanim na procentima. Korisnici i dalje mogu videti gde se nalaze sve diskusije i dodirnuti markere da otvore celozaslonski chat interfejs.

Dinamičko učitavanje slika

Sistem zasnovan na procentima radi ispravno čak i kada se slike učitavaju asinhrono ili menjaju veličinu nakon učitavanja stranice. Widget nadgleda element slike i preračunava pozicije markera kad god se dimenzije slike promene.

Ako koristite leno učitavanje slika (lazy-loading) ili implementirate responzivne slike sa različitim veličinama na različitim breakpoint-ovima, markeri se automatski prilagođavaju kada se veličina slike promeni.

Doslednost između uređaja

Pošto se koordinate čuvaju kao procenti u bazi podataka, diskusija kreirana na desktop računaru pojavljuje se na istoj relativnoj lokaciji kada se pregleda na tabletu ili telefonu. Korisnici mogu sarađivati preko uređaja bez bilo kakvih neslaganja u pozicioniranju.

Ovo radi obostrano. Diskusija kreirana dodirom specifičnog mesta na mobilnom uređaju pojavljuje se na istoj relativnoj poziciji kada se pregleda na velikom desktop monitoru.

Razmatranja vezana za viewport

Widget izračunava procente u odnosu na sam element slike, a ne u odnosu na viewport. To znači da skrolovanje stranice ili promena veličine prozora pregledača ne utiču na pozicije markera. Markeri ostaju pričvršćeni za svoje lokacije na slici bez obzira na promene viewport-a.

Priprema sadržaja za budućnost

Pristup zasnovan na procentima čini vaše diskusije na slikama otpornim na promene u rasporedu, dizajnu ili ekosistemu uređaja. Kako se pojavljuju nove veličine ekrana i uređaji, postojeće diskusije će i dalje biti prikazane ispravno bez potrebe za ažuriranjima ili migracijama.

Prilagođavanje Internal Link

Podrška za tamni režim

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

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

Stilovi za tamni režim primenjuju se na prozore chata, marker kvadrate i sve interaktivne elemente. Ako vaš sajt ima prekidač za tamni režim, možete ponovo inicijalizovati widget kada se režim promeni, ili koristiti pristup sa klasom na body elementu opisan ispod.

Dinamički tamni režim

Ako je tamni režim na vašem sajtu kontrolisan dodavanjem klase .dark na body element, Image Chat UI će to automatski poštovati bez potrebe za ponovnom inicijalizacijom. Stilovi widgeta su dizajnirani da reaguju na prisustvo ove klase.

/* Vaš CSS za tamni režim */
body.dark {
    background: #1a1a1a;
    color: #ffffff;
}

Prilagođavanje stilova pomoću CSS-a

Možete prilagoditi izgled markera, prozora chata i drugih elemenata koristeći CSS. Widget dodaje specifične klase koje možete ciljati u vašem stylesheet-u.

Chat kvadratići i prozori koriste FastComments sistem stilizovanja komentarskih balona, tako da će sve prilagodbe koje ste primenili na standardni komentar widget takođe uticati na Image Chat.

Veličina chat kvadrata

Opcija chatSquarePercentage kontroliše veličinu klikabilnih markera. Podrazumevana vrednost je 5% širine slike:

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

Manje vrednosti stvaraju nežnije markere koji se bolje uklapaju u sliku. Veće vrednosti čine markere istaknutijim i lakšim za klik, posebno na mobilnim uređajima ili radi pristupačnosti.

Ponašanje na mobilnim uređajima

Na ekranima širine manje od 768px, Image Chat se automatski prebacuje na layout optimizovan za mobilne uređaje. Prozori chata se pojavljuju preko celog ekrana umesto da lebde pored markera, što pruža bolju upotrebljivost na malim ekranima.

Markeri ostaju vidljivi na svojim responzivnim pozicijama na slici. Korisnici mogu dodirnuti bilo koji marker da otvore fullscreen chat interfejs. Ovo ponašanje je ugrađeno i ne zahteva nikakvu konfiguraciju.

Izgled prozora chata

Prozori chata su široki 300px na desktopu sa strelicom od 16px koja pokazuje na marker. Prozori se automatski pozicioniraju u zavisnosti od dostupnog prostora u viewport-u, koristeći klase pozicioniranja kao što su to-right, to-left, to-top, i to-bottom.

Možete dodati prilagođeni CSS da podesite boje, fontove, razmake ili druge vizuelne osobine ovih prozora. Prozori chata koriste istu strukturu komponenti kao standardni FastComments widget, tako da nasledjuju sve globalne prilagođavanja koja ste primenili.

Lenja inicijalizacija

Prozori chata se inicijalizuju na hover za desktop korisnike ili odmah kada su kreirani. Ovo smanjuje početno opterećenje učitavanja tako što renderuje chat interfejs samo kada korisnici zaista interaguju sa markerom.

Lenja inicijalizacija se dešava transparentno. Korisnici ne primete kašnjenje, ali pregledač ne mora da renderuje desetine skrivenih prozora chata ako imate mnogo markera na slici.

Lokalizacija

Image Chat podržava sve iste opcije lokalizacije kao standardni FastComments widget. Podesite opciju locale da prikažete UI tekst na različitim jezicima:

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

FastComments podržava desetine jezika. Podešavanje locale utiče na sav UI tekst uključujući poruke, dugmad i tekst u placeholderima.

Nasleđene opcije prilagođavanja

Pošto Image Chat proširuje standardni komentar widget, nasleđuje sve opcije prilagođavanja iz osnovnog widgeta. To uključuje prilagođene CSS klase, prilagođena prevoda, prilagođavanje avatara, formatiranje datuma i još mnogo toga.

Pogledajte glavnu FastComments dokumentaciju o prilagođavanju za kompletan spisak dostupnih opcija prilagođavanja.

Rad sa prilagođenim fontovima

Ako vaš sajt koristi prilagođene fontove, Image Chat UI će naslediti te fontove iz CSS-a vaše stranice. Prozori chata se renderuju 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 pre inicijalizacije Image Chat-a, ili prihvatite da može doći do kratkog treptaja nestiilisanog teksta dok se fontovi učitavaju.

Vizuelni dizajn markera

Kvadratni markeri imaju suptilan vizuelni dizajn koji ih čini uočljivim bez preopterećenja slike. Možete prilagoditi njihov izgled pomoću CSS-a ako želite drugačiji vizuelni tretman.

Markeri uključuju hover stanja koja daju povratnu informaciju kada korisnici pomere miš preko njih. Na uređajima osetljivim na dodir, tap interakcija daje momentalnu povratnu informaciju otvaranjem prozora chata.


Sinhronizacija uživo Internal Link

Ažuriranja u realnom vremenu

Image Chat koristi WebSocket konekcije za sinhronizaciju svih razgovora u realnom vremenu između svih povezanih korisnika. Kada neko kreira novi marker, doda komentar ili obriše diskusiju, svi ostali korisnici koji gledaju istu sliku vide ažuriranje odmah bez osvežavanja.

Kako WebSocket sinhronizacija funkcioniše

Kada inicijalizujete Image Chat, vidžet uspostavlja WebSocket konekciju sa FastComments serverima. Ova konekcija ostaje otvorena tokom trajanja korisničke sesije i osluškuje ažuriranja vezana za trenutnu sliku.

WebSocket sistem koristi tri tipa broadcast poruka za Image Chat. Događaj new-image-chat se emituje kada neko kreira novi marker na slici. Događaj image-chat-updated se emituje kada neko ažurira postojeću konverzaciju. Događaj deleted-image-chat se emituje kada neko obriše marker.

Sistem Broadcast ID

Kako bi se sprečili efekti odjeka gde korisnici vide svoje sopstvene akcije koje im se ponovo emituju, svako ažuriranje uključuje jedinstveni broadcastId. Kada korisnik kreira ili ažurira marker, njegov klijent generiše UUID za tu operaciju. Kada WebSocket emituje ažuriranje nazad svim klijentima, klijent koji je inicirao operaciju ignoriše ažuriranje jer odgovara njegovom broadcastId.

Ovo obezbeđuje nesmetanu interakciju gde korisnici vide svoje izmene odmah u UI bez čekanja na povratni krug kroz server, dok istovremeno svi drugi korisnici dobijaju ažuriranje.

Otpornost konekcije

Ako WebSocket konekcija padne zbog mrežnih problema ili održavanja servera, vidžet automatski pokušava da se ponovo poveže. Tokom perioda ponovnog povezivanja, korisnici i dalje mogu da interaguju sa postojećim markerima, ali neće videti ažuriranja od drugih korisnika dok se konekcija ne uspostavi ponovo.

Kada se ponovo poveže, vidžet se resinhronizuje kako bi se osiguralo da nijedno ažuriranje nije propušteno. Ovo se dešava transparentno bez potrebe za intervencijom korisnika.

Propusni opseg

WebSocket poruke su lagane i sadrže samo neophodne informacije potrebne za sinhronizaciju stanja. Kreiranje novog markera obično koristi manje od 1KB propusnog opsega. Sistem takođe uključuje inteligentno grupisanje poruka kako bi se smanjila učestalost poruka tokom perioda visoke aktivnosti.

Vaši metrički podaci u FastComments kontrolnoj tabli prate pubSubMessageCount i pubSubBandwidth tako da možete pratiti aktivnost sinhronizacije u realnom vremenu na vašim sajtovima.

Sinhronizacija između tabova

Ako korisnik ima istu stranicu otvorenu u više browser tabova, ažuriranja u jednom tabu pojavljuju se odmah i u ostalim tabovima. Ovo funkcioniše kroz isti WebSocket mehanizam sinhronizacije i ne zahteva dodatnu konfiguraciju.

Korisnici mogu imati vaš sajt otvoren na više uređaja istovremeno, i svi će ostati sinhronizovani. Marker kreiran na desktop računaru pojavljuje se instantno na korisnikovom tabletu ako oba uređaja gledaju istu sliku.

Bezbednost

WebSocket poruke se prenose preko sigurnih konekcija (WSS) i uključuju tenant validaciju da bi se osiguralo da korisnici primaju samo ažuriranja za konverzacije koje su ovlašćeni da vide. Server validira sve operacije pre nego što ih emituje kako bi se sprečio neovlašćeni pristup ili manipulacija.

Ponašanje u offline režimu

Kada su korisnici potpuno offline, i dalje mogu da vide postojeće markere ali ne mogu da kreiraju nove niti da vide ažuriranja od drugih. Vidžet detektuje offline stanje i prikazuje odgovarajuće poruke.

Ako korisnik pokuša da kreira marker dok je offline, a zatim se ponovo poveže, operacija će neuspeti umesto da se stavi u red, čime se obezbeđuje konzistentnost podataka. Korisnici treba ponovo da pokušaju operaciju kada im se veza obnovi.

Uticaj na performanse

WebSocket konekcija ima minimalan uticaj na performanse. Konekcija ostaje u stanju mirovanja kada nema ažuriranja i procesuira poruke samo kada se aktivnost dogodi. Na tipičnoj slici sa umerenim brojem markera, WebSocket koristi manje CPU resursa nego prikaz same slike.

Za stranice sa stotinama istovremenih korisnika i visokom aktivnošću kreiranja markera, sistem horizontalno skalira kako bi održao performanse bez uticaja na pojedinačne klijentske veze.

Kolaborativni slučajevi upotrebe

Sinhronizacija u realnom vremenu čini Image Chat posebno moćnim za kolaborativne tokove rada. Dizajn timovi mogu zajedno pregledati makete uz to da svi vide pozicioniranje markera u realnom vremenu. Timovi za korisničku podršku mogu kolektivno anotirati snimke ekrana kako bi identifikovali probleme. Edukativne grupe mogu diskutovati dijagrame uz to da svi učesnici vide marker-e drugih kako se kreiraju.

Neposredna povratna informacija stvara angažovanije i produktivnije kolaborativno iskustvo u poređenju sa tradicionalnim sistemima komentarisanja gde korisnici moraju da osveže stranicu da bi videli ažuriranja.

Imate pitanja?

To je sve za FastComments Image Chat! Ako imate bilo kakvih pitanja, treba vam pomoć pri implementaciji, ili imate predloge za funkcije, javite nam ispod ili kontaktirajte naš tim za podršku.

Pogledajte uživo demo na našoj demo stranici da vidite Image Chat u akciji.