FastComments.com

FastComments Image Chat омогућава интерактивне дискусије на сликама тиме што корисницима омогућава да кликну било гдје на слику да би креирали тачке за дискусију. Корисници могу кликнути на специфичне делове слика да започну разговоре о тим областима, стварајући визуелне маркере који показују гдје се дискусије налазе.

Ова функција је идеална за повратне информације о дизајну, прегледе производа, образовне материјале са дијаграмима, фото-галерије са коментарима и било који сценарио у којем желите контекстуалне дискусије везане за одређене локације на слици.

Респонзивни дизајн Internal Link

Percentage-Based Positioning

Image Chat користи координате засноване на процентима уместо пикселских координата за позиционирање маркера ћаскања на сликама. Када корисник кликне на слику, видгет конвертује пикселске координате клика у проценат ширине и висине слике. Овај приступ осигурава да маркери остану на исправној локацији без обзира на то како је слика приказана.

На пример, ако корисник кликне 250 пиксела од леве ивице слике ширине 1000px, видгет то чува као 25% од леве ивице. Када други корисник погледа исту слику ширине 500px на мобилном уређају, маркер ће се појавити на 125 пиксела од леве ивице, што је и даље 25% ширине.

Benefits for Responsive Layouts

Овај систем процената омогућава да Image Chat беспрекорно ради на свим величинама уређаја и оријентацијама. Ваше слике могу бити приказане у различитим величинама у зависности од ширине екрана, CSS правила или ограничења контејнера, али маркери се увек правилно поравнавају са предвиђеним локацијама.

Корисници на десктоп рачунарима са великим мониторима виде маркере на истим релативним позицијама као и корисници на паметним телефонима са малим екранима. Маркери се мењају пропорционално са самом сликом.

Image Scaling and Aspect Ratio

Док год ваша слика одржава аспект рацио приликом скалирања (што је подразумевано понашање прегледача), маркери засновани на процентима ће остати савршено поравнати. Видгет претпоставља да се слике скалирају пропорционално и израчунава позиције на основу те претпоставке.

Ако примените CSS који деформише аспект рацио слике (на пример коришћењем object-fit: cover са специфичним димензијама), позиције маркера можда неће бити правилно поравнате. За најбоље резултате, дозволите сликама да се скалирају природно или користите object-fit: contain да одржите аспект рацио.

Chat Square Sizing

Визуелна величина маркера ћаскања је такође заснована на процентима. Опција конфигурације chatSquarePercentage је подразумевано постављена на 5%, што значи да је сваки квадрат 5% ширине слике. Ово осигурава конзистентну визуелну тежину на различитим величинама слика.

На слици ширине 1000px са подразумеваном вредношћу 5%, маркери су квадрати 50px. На слици ширине 500px, исти маркери су квадрати 25px. Они остају пропорционални величини слике.

Mobile Behavior

На екранима ширине мање од 768px, Image Chat прелази на мобилно оптимизован распорeд. Прозори ћаскања се отварају преко целог екрана уместо да плутају поред маркера. Ово пружа бољу употребљивост на малим екранима где би плутајући прозори преоптеретили превише слике.

Сами маркери остају видљиви и кликабилни на својим позицијама заснованим на процентима. Корисници и даље могу видети где се све дискусије налазе и тапнути на маркере да отворе интерфејс за ћаскање преко целог екрана.

Dynamic Image Loading

Систем заснован на процентима ради исправно чак и када се слике учитавају асинхроно или мењају величину након учитавања странице. Видгет прати елемент слике и реизрачунава позиције маркера када год се димензије слике промене.

Ако користите одложено учитавање слика или имплементирате респонзивне слике различитих величина на различитим преломним тачкама, маркери се аутоматски прилагођавају када се величина слике промени.

Cross-Device Consistency

Пошто се координате чувају као проценти у бази података, дискусија створена на десктоп рачунару појављује се на истој релативној локацији када се гледа на таблету или телефону. Корисници могу сарађивати на различитим уређајима без било каквих неусклађености у позиционирању.

Ово ради у оба правца. Дискусија креирана тапкањем на одређено место на мобилном уређају појављује се на истој релативној позицији када се гледа на великом десктоп монитору.

Viewport Considerations

Видгет израчунава проценте у односу на сам елемент слике, а не у односу на видну област (viewport). То значи да прелицање странице или мењање величине прозора прегледача не утиче на позиције маркера. Маркери остају причвршћени за своје локације на слици без обзира на промене видне области.

Future-Proofing Content

Приступ заснован на процентима чини ваше дискусије о сликама отпорним на промене у распореду, дизајну или екосистему уређаја. Како се појављују нове величине екрана и уређаји, постојеће дискусије ће се наставити правилно приказивати без потребе за икаквим ажурирањима или миграцијама.

Прилагођавање Internal Link

Подршка за тамни режим

Image Chat има уграђену подршку за тамни режим. Када у конфигурацији подесите hasDarkBackground: true, прозори чета и UI елементи се аутоматски прилагођавају да добро функционишу на тамним позадинама.

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

Стилови за тамни режим се примјењују на прозоре чата, квадратиће маркера и све интерактивне елементе. Ако ваша сајт има прекидач за тамни режим, можете поново иницијализовати видгет када се режим промијени, или користити приступ са класом на body елементу опisan испод.

Динамички тамни режим

Ако је тамни режим на вашем сајту контролисан додавањем .dark класе на body елемент, Image Chat UI ће аутоматски поштовати то без потребе за поновном иницијализацијом. Стилови видгета су дизајнирани да реагују на присуство ове класе.

/* Ваш CSS за тамни режим */
body.dark {
    background: #1a1a1a;
    color: #ffffff;
}

Прилагођавање стила помоћу CSS-а

Можете прилагодити изглед маркера, прозора чата и других елемената помоћу CSS-а. Видгет додаје специфичне класе које можете cilати у вашем стилском листу.

Квадратићи и прозори чата користе систем стилизовања балона коментара FastComments-а, тако да било каква прилагођавања која сте примјенили на стандардни видгет за коментаре ће такође утицати на Image Chat.

Величина квадрата чата

Опција chatSquarePercentage контролише величину кликабилних маркера. Подразумјевана вриједност је 5% ширине слике:

FastCommentsImageChat(imageElement, {
    tenantId: 'demo',
    chatSquarePercentage: 7  // Већи, видљивији квадрати
});

Мање вриједности креирају суптилније маркере који се боље уклапају у слику. Веће вриједности чине маркере упадљивијим и лакшим за кликање, нарочито на мобилним уређајима или из разлога приступачности.

Понашање на мобилним уређајима

На екранима ширине мање од 768px, Image Chat аутоматски прелази на мобилну оптимизовану распореда. Прозори чата се појављују преко цијелог екрана уместо да плутају поред маркера, пружајући бољу употребљивост на малим екранским величинама.

Маркери остају видљиви на својим респонзивним позицијама на слици. Корисници могу додирнути било који маркер да отворе интерфејс чата преко цијелог екрана. Ово понашање је уграђено и не захтијева додатну конфигурацију.

Изглед прозора чата

Прозори чата су ширине 300px на десктопу са стрелицом од 16px која показује на маркер. Прозори се аутоматски позиционирају у зависности од доступног простора у viewport-у, користећи позиционирајуће класе као што су to-right, to-left, to-top, и to-bottom.

Можете додати прилагођени CSS да подесите боје, фонтове, размаке или друге визуелне особине ових прозора. Прозори чата користе исту компонентну структуру као стандардни FastComments видгет, тако да наслеђују сва глобална прилагођавања која сте примјенили.

Одложена иницијализација

Прозори чата се иницијализују при hover-у за кориснике на десктопу или одмах када се креирају. Ово смањује почетно оптерећење учитавања тако што рендерује интерфејс чата само када корисници заиста интерагују са маркером.

Одложена иницијализација се догоди прозирно. Корисници не примјете кашњење, али претраживачу није потребно да рендерује десетине скривених прозора чата ако имате много маркера на слици.

Локализација

Image Chat подржава све исте опције локализације као и стандардни FastComments видгет. Подесите опцију locale да прикажете UI текст на различитим језицима:

FastCommentsImageChat(imageElement, {
    tenantId: 'demo',
    locale: 'fr'  // Француски
});

FastComments подржава десетине језика. Подешавање локала утиче на сав UI текст укључујући упите, дугмад и текст места за упис.

Насљедне опције прилагођавања

Пошто Image Chat проширује стандардни видгет за коментаре, насљедује све опције прилагођавања из базног видгета. Ово укључује прилагођене CSS класе, прилагођене преводе, прилагођавање аватара, форматирање датума и још много тога.

Погледајте главну FastComments документацију о прилагођавању за комплетну листу опција прилагођавања које су доступне.

Рад са прилагођеним фонтовима

Ако ваш сајт користи прилагођене фонтове, Image Chat UI ће насљедити те фонтове из CSS-а ваше странице. Прозори чата се рендерују у DOM-у ваше странице и поштују ваше постојеће типографске поставке.

За најбоље резултате, осигурајте да су ваши прилагођени фонтови учитани прије иницијализације Image Chat-а, или прихватите да може доћи до краткотрајног појављивања неформатираног текста док се фонтови учитавају.

Визуелни дизајн маркера

Квадратни маркери имају суптилан визуелни дизајн који их чини уочљивим без преоптерећења слике. Можете прилагодити њихов изглед помоћу CSS-а ако желите другачији визуелни третман.

Маркери укључују hover стања која пружају повратну информацију када корисници помјере миш преко њих. На уређајима на додир, интеракција додира пружа тренутну повратну информацију отварањем прозора чата.

Синхронизација уживо Internal Link

Real-Time Updates

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

How WebSocket Sync Works

Kada inicijalizujete Image Chat, widget uspostavlja WebSocket vezu sa FastComments serverima. Ova veza ostaje otvorena tokom trajanja korisničke sesije i sluša ažuriranja vezana za trenutnu sliku.

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

Broadcast ID System

Da bi se spriječili echo efekti gdje korisnici vide svoje vlastite akcije kako im se ponovo emituju, svako ažuriranje uključuje jedinstveni broadcastId. Kada korisnik kreira ili ažurira označivač, njihov klijent generiše UUID za tu operaciju. Kada WebSocket emituje ažuriranje nazad svim klijentima, izvornući klijent ignoriše ažuriranje jer se podudara sa njegovim broadcastId.

Ovo osigurava glatku interakciju gdje korisnici vide svoje promjene odmah u UI bez čekanja na povratni put preko servera, dok istovremeno svi ostali korisnici dobijaju ažuriranje.

Connection Resilience

Ako WebSocket veza padne zbog problema sa mrežom ili održavanja servera, widget automatski pokušava ponovo da se poveže. Tokom perioda ponovnog povezivanja, korisnici i dalje mogu da rade sa postojećim označivačima, ali neće vidjeti ažuriranja od drugih korisnika dok se veza ne uspostavi ponovo.

Kada se veza ponovo uspostavi, widget ponovo sinhronizuje kako bi osigurao da nijedno ažuriranje nije propušteno. Ovo se dešava transparentno bez potrebe za intervencijom korisnika.

Bandwidth Considerations

WebSocket poruke su lagane i sadrže samo osnovne informacije potrebne za sinhronizaciju stanja. Kreiranje novog označivača obično koristi manje od 1KB propusnog opsega. Sistem takođe uključuje inteligentno grupisanje poruka kako bi smanjio frekvenciju poruka tokom perioda visoke aktivnosti.

Vaše metrike upotrebe u FastComments nadzornoj ploči prate pubSubMessageCount i pubSubBandwidth tako da možete pratiti aktivnost real-time sinhronizacije na vašim sajtovima.

Cross-Tab Synchronization

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

Korisnici mogu imati vaš sajt otvoren na više uređaja istovremeno i svi će ostati sinhronizovani. Oznaka kreirana na desktop računaru 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 zakupca kako bi se osiguralo da korisnici dobijaju samo ažuriranja za konverzacije koje su ovlašteni vidjeti. Server validira sve operacije prije nego što ih emituje kako bi spriječio neovlašten pristup ili manipulaciju.

Offline Behavior

Kada su korisnici potpuno van mreže, i dalje mogu pregledavati postojeće označivače, ali ne mogu kreirati nove niti vidjeti ažuriranja od drugih. Widget detektuje offline stanje i prikazuje odgovarajuću poruku.

Ako korisnik pokuša kreirati označivač dok je offline, a zatim se vrati online, operacija će biti neuspješna umjesto da se stavlja u red, čime se osigurava konzistentnost podataka. Korisnici bi trebali ponoviti operaciju kada se veza obnovi.

Performance Impact

WebSocket veza ima minimalan uticaj na performanse. Veza ostaje u stanju mirovanja kada se ne dešavaju ažuriranja i obrađuje poruke samo kada ima aktivnosti. Na tipičnoj slici sa umjerenom aktivnošću označivača, WebSocket koristi manje CPU-a nego prikaz same slike.

Za stranice sa stotinama simultanih korisnika i velikom aktivnošću kreiranja označivača, sistem se horizontalno skaluje kako bi održao performanse bez uticaja na pojedinačne klijentske veze.

Collaborative Use Cases

Real-time sinhronizacija čini Image Chat posebno moćnim za kolaborativne tokove rada. Dizajnerski timovi mogu zajedno pregledavati mockup-e uz to da svi vide postavke označivača u stvarnom vremenu. Timovi korisničke podrške mogu zajednički anotirati screenshot-ove kako bi identificirali probleme. Edukativne grupe mogu diskutovati dijagrame uz to da svi učesnici vide označivače drugih kako se kreiraju.

Neposredna povratna informacija stvara angažovanije i produktivnije kolaborativno iskustvo u poređenju sa tradicionalnim sistemima komentara gdje korisnici moraju osvježiti stranicu da bi vidjeli ažuriranja.

Имате питања?

То је то за FastComments Image Chat! Ако имате било каквих питања, треба вам помоћ са имплементацијом, или имате предлоге за функције, јавите нам се у наставку или контактирајте наш тим за подршку.

Погледајте живу демонстрацију на нашој страници демо приказа да бисте видели Image Chat у акцији.