FastComments.com

FastComments Image Chat, kullanıcıların bir resmin herhangi bir yerine tıklayarak tartışma noktaları oluşturmasına olanak tanıyarak resimler üzerinde etkileşimli tartışmalar sağlar. Kullanıcılar, belirli resim bölgelerine tıklayarak o alanlar hakkında konuşmalar başlatabilir ve tartışmaların nerede olduğunu gösteren görsel işaretçiler oluşturabilir.

Bu özellik tasarım geri bildirimi, ürün incelemeleri, diyagramlı eğitim materyalleri, yorumlu fotoğraf galerileri ve bağlamsal tartışmaları belirli görüntü konumlarına sabitlemek istediğiniz her senaryo için mükemmeldir.

Duyarlı Tasarım Internal Link

Yüzde Tabanlı Konumlandırma

Image Chat, görüntü üzerindeki sohbet işaretlerini konumlandırmak için piksel koordinatları yerine yüzde tabanlı koordinatları kullanır. Bir kullanıcı bir görüntüye tıkladığında, widget tıklamanın piksel koordinatlarını görüntü genişliğinin ve yüksekliğinin yüzdelerine dönüştürür. Bu yaklaşım, görüntü nasıl gösterilirse gösterilsin işaretlerin doğru konumda kalmasını sağlar.

Örneğin, bir kullanıcı 1000px genişliğindeki bir görüntünün sol kenarından 250 piksel uzaklığa tıklarsa, widget bunu sol kenardan %25 olarak kaydeder. Başka bir kullanıcı aynı görüntüyü mobil cihazda 500px genişlikte görüntülediğinde, işaret sol kenardan 125 pikselde görünür ki bu hâlâ genişliğin %25'idir.

Duyarlı Düzenler için Faydalar

Bu yüzde sistemi Image Chat'in tüm cihaz boyutlarında ve yönlerinde sorunsuz çalışmasını sağlar. Görüntüleriniz ekran genişliğine, CSS kurallarına veya kapsayıcı kısıtlamalarına bağlı olarak farklı boyutlarda gösterilebilir, ancak işaretler her zaman hedeflenen konumlarla doğru şekilde hizalanır.

Büyük monitörlü masaüstü bilgisayarlardaki kullanıcılar, küçük ekranlı akıllı telefonlardaki kullanıcılarla aynı göreli konumlarda işaretleri görür. İşaretler, görüntünün kendisiyle orantılı olarak ölçeklenir.

Görüntü Ölçeklendirme ve En-Boy Oranı

Görüntünüz ölçeklenirken en-boy oranını koruduğu sürece (ki bu varsayılan tarayıcı davranışıdır), yüzde tabanlı işaretler mükemmel şekilde hizalanmış kalır. Widget, görüntülerin orantılı olarak ölçeklendiğini varsayar ve konumları bu varsayıma göre hesaplar.

Eğer görüntünün en-boy oranını bozan CSS uygularsanız (örneğin belirli boyutlarla object-fit: cover kullanmak gibi), işaret konumları doğru hizalanmayabilir. En iyi sonuçlar için görüntülerin doğal olarak ölçeklenmesine izin verin veya en-boy oranını korumak için object-fit: contain kullanın.

Sohbet Karesi Boyutlandırması

Sohbet işaretlerinin görsel boyutu da yüzde tabanlıdır. chatSquarePercentage yapılandırma seçeneğinin varsayılanı %5'tir; bu, her karenin görüntü genişliğinin %5'i olduğu anlamına gelir. Bu, farklı görüntü boyutlarında tutarlı bir görsel yoğunluk sağlar.

Varsayılan %5 ayarıyla 1000px genişliğindeki bir görüntüde işaretler 50px kare olur. 500px genişliğindeki bir görüntüde aynı işaretler 25px kare olur. Bunlar görüntü boyutuna orantılı kalır.

Mobil Davranış

768px'den daha dar ekranlarda Image Chat mobil için optimize edilmiş bir düzene geçer. Sohbet pencereleri markerın yanında kayan pencere yerine tam ekran açılır. Bu, kayan pencerelerin görüntünün çok büyük kısmını kapatacağı küçük ekranlarda daha iyi kullanılabilirlik sağlar.

İşaretlerin kendileri yüzde tabanlı konumlarında görünür ve tıklanabilir kalır. Kullanıcılar tüm tartışmaların nerede olduğunu görebilir ve tam ekran sohbet arayüzünü açmak için işaretlere dokunabilir.

Dinamik Görüntü Yükleme

Yüzde tabanlı sistem, görüntüler asenkron olarak yüklendiğinde veya sayfa yüklendikten sonra boyutları değiştiğinde bile doğru çalışır. Widget, görüntü öğesini izler ve görüntü boyutları değiştiğinde işaret konumlarını yeniden hesaplar.

Eğer görüntüleri tembel yükleme (lazy-loading) yapıyorsanız veya farklı kırılma noktalarında farklı boyutlara sahip duyarlı görüntüler (responsive images) uyguluyorsanız, görüntü boyutu değiştiğinde işaretler otomatik olarak ayarlanır.

Cihazlar Arası Tutarlılık

Koordinatlar veritabanında yüzde olarak saklandığı için, bir masaüstü bilgisayarda oluşturulan tartışma tablet veya telefonda görüntülendiğinde aynı göreli konumda görünür. Kullanıcılar cihazlar arasında konumlandırma tutarsızlığı olmadan işbirliği yapabilir.

Bu iki yönlü olarak çalışır. Mobil cihazda belirli bir noktaya dokunarak oluşturulan bir tartışma, büyük bir masaüstü monitörde görüntülendiğinde aynı göreli konumda görünür.

Görünüm Penceresi (Viewport) Hususları

Widget yüzdeleri görünüm penceresi yerine görüntü öğesinin kendisine göre hesaplar. Bu, sayfayı kaydırmanın veya tarayıcı pencere boyutunu değiştirmenin işaret konumlarını etkilemediği anlamına gelir. Görünüm penceresi değişikliklerine bakılmaksızın işaretler görüntü üzerindeki konumlarına sabitlenmiş kalır.

İçeriği Geleceğe Hazırlama

Yüzde tabanlı yaklaşım, görüntü tartışmalarınızı düzen, tasarım veya cihaz ekosistemindeki değişikliklere karşı dayanıklı kılar. Yeni ekran boyutları ve cihazlar ortaya çıktıkça, mevcut tartışmalar herhangi bir güncelleme veya taşıma gerektirmeden doğru şekilde görüntülenmeye devam edecektir.

Özelleştirme Internal Link

Karanlık Mod Desteği

Image Chat yerleşik karanlık mod desteği içerir. Yapılandırmanızda hasDarkBackground: true olarak ayarladığınızda, sohbet pencereleri ve UI öğeleri koyu arka planlarda iyi görünmeleri için otomatik olarak uyum sağlar.

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

Karanlık mod stil uygulaması sohbet pencerelerine, işaretçi karelerine ve tüm etkileşimli öğelere uygulanır. Sitenizde bir karanlık mod seçeneği varsa, mod değiştiğinde widget'ı yeniden başlatabilir veya aşağıda açıklanan body sınıfı yaklaşımını kullanabilirsiniz.

Dinamik Karanlık Mod

Sitenizin karanlık modu body öğesine .dark sınıfı ekleyerek kontrol ediliyorsa, Image Chat UI bunu yeniden başlatma gerektirmeden otomatik olarak dikkate alır. Widget'ın stilleri bu sınıfın varlığına yanıt verecek şekilde tasarlanmıştır.

/* Karanlık mod CSS'iniz */
body.dark {
    background: #1a1a1a;
    color: #ffffff;
}

Özel Stil ile CSS

İşaretçilerin, sohbet pencerelerinin ve diğer öğelerin görünümünü CSS ile özelleştirebilirsiniz. Widget, stil sayfanızda hedefleyebileceğiniz belirli sınıflar ekler.

Sohbet kareleri ve pencereleri FastComments yorum balonu stil sistemi kullanır, bu nedenle standart yorum widget'ına uyguladığınız herhangi bir özelleştirme Image Chat'i de etkiler.

Sohbet Karesi Boyutlandırma

chatSquarePercentage seçeneği tıklanabilir işaretçilerin boyutunu kontrol eder. Varsayılan, görüntü genişliğinin %5'idir:

FastCommentsImageChat(imageElement, {
    tenantId: 'demo',
    chatSquarePercentage: 7  // Daha büyük, daha görünür kareler
});

Daha küçük değerler görüntüye daha sinsi şekilde karışan işaretçiler oluşturur. Daha büyük değerler, özellikle mobil cihazlarda veya erişilebilirlik amaçları için işaretçileri daha belirgin ve tıklanması daha kolay hale getirir.

Mobil Davranış

768px'den dar ekranlarda, Image Chat otomatik olarak mobil için optimize edilmiş bir düzen kullanır. Sohbet pencereleri işaretçilerin yanında kayan şekilde görünmek yerine tam ekran olarak görünür, küçük ekranlarda daha iyi kullanılabilirlik sağlar.

İşaretçiler görüntü üzerindeki duyarlı konumlarında görünür kalır. Kullanıcılar herhangi bir işaretçiye dokunarak tam ekran sohbet arayüzünü açabilir. Bu davranış yerleşiktir ve herhangi bir yapılandırma gerektirmez.

Sohbet Penceresi Görünümü

Sohbet pencereleri masaüstünde 300px genişliğindedir ve işaretçiye işaret eden 16px'lik bir ok bulunur. Pencereler, to-right, to-left, to-top ve to-bottom gibi konumlandırma sınıflarını kullanarak mevcut görünüm alanına (viewport) göre otomatik olarak konumlanır.

Bu pencerelerin renklerini, yazı tiplerini, boşluklarını veya diğer görsel özelliklerini ayarlamak için özel CSS ekleyebilirsiniz. Sohbet pencereleri standart FastComments widget'ı ile aynı bileşen yapısını kullandığından, uyguladığınız herhangi bir genel özelleştirmeyi devralır.

Tembel Başlatma

Sohbet pencereleri masaüstü kullanıcıları için hover ile veya oluşturulduğunda hemen başlatılır. Bu, kullanıcılar gerçekten bir işaretçi ile etkileşime girene kadar sohbet arayüzünü yalnızca render ederek başlangıç yükünü azaltır.

Tembel başlatma şeffaf bir şekilde gerçekleşir. Kullanıcılar herhangi bir gecikme fark etmez, ancak tarayıcının bir görüntüde birden çok işaretçi varsa onlarca gizli sohbet penceresini render etmesine gerek kalmaz.

Yerelleştirme

Image Chat, standart FastComments widget'ı ile aynı yerelleştirme seçeneklerinin tümünü destekler. UI metinlerini farklı dillerde göstermek için locale seçeneğini ayarlayın:

FastCommentsImageChat(imageElement, {
    tenantId: 'demo',
    locale: 'fr'  // Fransızca
});

FastComments onlarca dili destekler. Locale ayarı istemler, düğmeler ve yer tutucu metinler dahil tüm UI metinlerini etkiler.

Devralınan Özelleştirme Seçenekleri

Image Chat, standart yorum widget'ını genişlettiğinden, temel widget'tan tüm özelleştirme seçeneklerini devralır. Bu, özel CSS sınıfları, özel çeviriler, avatar özelleştirmesi, tarih formatlama ve çok daha fazlasını içerir.

Mevcut tüm özelleştirme seçenekleri listesi için ana FastComments özelleştirme belgelerine bakın.

Özel Yazı Tipleriyle Çalışma

Siteniz özel yazı tipleri kullanıyorsa, Image Chat UI bu yazı tiplerini sayfanızın CSS'inden devralır. Sohbet pencereleri sayfanızın DOM'u içinde render edilir ve mevcut tipografi ayarlarınızı dikkate alır.

En iyi sonuçlar için özel yazı tiplerinizin Image Chat'i başlatmadan önce yüklendiğinden emin olun veya yazı tipleri yüklenene kadar kısa bir sürede biçimsiz metin yanıp sönmesi olabileceğini kabul edin.

İşaretçi Görsel Tasarımı

Kare işaretçiler, görüntüyü bunaltmadan fark edilmelerini sağlayan ince bir görsel tasarıma sahiptir. Farklı bir görsel işlem istiyorsanız görünümünü CSS ile özelleştirebilirsiniz.

İşaretçiler, kullanıcı fareyi üzerlerine getirdiğinde geri bildirim sağlayan hover durumlarını içerir. Dokunmatik cihazlarda, dokunma etkileşimi sohbet penceresini açarak anında geri bildirim sağlar.

Canlı Senkronizasyon Internal Link

Real-Time Updates

Image Chat, tüm bağlı kullanıcılar arasında tüm konuşmaları gerçek zamanlı senkronize etmek için WebSocket bağlantıları kullanır. Biri yeni bir işaretçi oluşturduğunda, yorum eklediğinde veya bir tartışmayı sildiğinde, aynı resmi görüntüleyen diğer tüm kullanıcılar sayfayı yenilemeye gerek kalmadan güncellemeyi hemen görür.

How WebSocket Sync Works

Image Chat başlatıldığında, widget FastComments sunucularına bir WebSocket bağlantısı kurar. Bu bağlantı kullanıcının oturumu süresince açık kalır ve geçerli resimle ilgili güncellemeleri dinler.

WebSocket sistemi Image Chat için üç tür yayın mesajı kullanır. new-image-chat olayı birisi resme yeni bir işaretçi oluşturduğunda tetiklenir. image-chat-updated olayı birisi mevcut bir konuşmayı güncellediğinde tetiklenir. deleted-image-chat olayı birisi bir işaretçiyi sildiğinde tetiklenir.

Broadcast ID System

Kullanıcıların kendi eylemlerinin kendilerine geri yayıldığını görerek yankı etkilerini önlemek için her güncelleme benzersiz bir broadcastId içerir. Bir kullanıcı bir işaretçi oluşturduğunda veya güncellediğinde, istemcisi o işlem için bir UUID üretir. WebSocket güncellemeyi tüm istemcilere yayınladığında, kaynağı oluşturan istemci kendi broadcastId ile eşleştiği için güncellemeyi yok sayar.

Bu, kullanıcıların sunucu üzerinden gidip gelmeyi beklemeden değişikliklerini arayüzde anında görmesini sağlarken, diğer tüm kullanıcıların da güncellemeyi almasını garanti eder.

Connection Resilience

WebSocket bağlantısı ağ sorunları veya sunucu bakımı nedeniyle kesilirse, widget otomatik olarak yeniden bağlanmaya çalışır. Yeniden bağlanma süresince kullanıcılar mevcut işaretçilerle etkileşime devam edebilir, ancak bağlantı yeniden kurulana kadar diğer kullanıcıların gerçek zamanlı güncellemelerini göremezler.

Bir kez yeniden bağlanıldığında, widget herhangi bir güncellemenin kaçırılmadığından emin olmak için yeniden senkronize olur. Bu, kullanıcı müdahalesi gerektirmeden şeffaf bir şekilde gerçekleşir.

Bandwidth Considerations

WebSocket mesajları hafiftir ve yalnızca durumu senkronize etmek için gerekli temel bilgileri içerir. Yeni bir işaretçi oluşturmak genellikle 1KB'den daha az bant genişliği kullanır. Sistem ayrıca yüksek etkinlik dönemlerinde mesaj sıklığını azaltmak için akıllı toplu işlemeyi içerir.

FastComments kontrol panelinizdeki kullanım metrikleriniz pubSubMessageCount ve pubSubBandwidth ile gerçek zamanlı senkronizasyon etkinliğini siteleriniz genelinde izlemenizi sağlar.

Cross-Tab Synchronization

Kullanıcının aynı sayfayı birden fazla tarayıcı sekmesinde açık tutması durumunda, bir sekmedeki güncellemeler diğer sekmelerde hemen görünür. Bu, aynı WebSocket senkronizasyon mekanizmasıyla çalışır ve ek bir yapılandırma gerektirmez.

Kullanıcılar sitenizi aynı anda birden fazla cihazda açık tutabilir ve hepsi senkronize kalır. Masaüstünde oluşturulan bir işaretçi, her iki cihaz da aynı resmi görüntülüyorsa kullanıcının tabletinde anında görünür.

Security

WebSocket mesajları güvenli bağlantılar (WSS) üzerinden aktarılır ve kullanıcıların yalnızca yetkili oldukları konuşmalar için güncellemeleri almasını sağlamak üzere kiracı doğrulaması içerir. Sunucu, yetkisiz erişimi veya manipülasyonu önlemek için yayınlamadan önce tüm işlemleri doğrular.

Offline Behavior

Kullanıcılar tamamen çevrimdışıyken mevcut işaretçileri görüntüleyebilirler ancak yeni bir işaretçi oluşturamaz veya başkalarının güncellemelerini göremezler. Widget çevrimdışı durumu algılar ve uygun bir ileti gösterir.

Bir kullanıcı çevrimdışıyken bir işaretçi oluşturmaya çalışır ve ardından çevrimiçi hale gelirse, işlem kuyruklanmak yerine başarısız olur; bu, veri tutarlılığını sağlar. Kullanıcılar bağlantıları geri geldiğinde işlemi yeniden denemelidir.

Performance Impact

WebSocket bağlantısının performans üzerinde minimal etkisi vardır. Güncelleme olmadığında bağlantı boşta kalır ve yalnızca etkinlik olduğunda mesajları işler. Orta düzey işaretçi etkinliğine sahip tipik bir resimde, WebSocket görüntünün kendisini render etmekten daha az CPU kullanır.

Yüzlerce eşzamanlı kullanıcı ve yüksek işaretçi oluşturma etkinliği olan sayfalarda, sistem bireysel istemci bağlantılarını etkilemeden performansı korumak için yatay olarak ölçeklenir.

Collaborative Use Cases

Gerçek zamanlı senkronizasyon, Image Chat'i işbirlikçi iş akışları için özellikle güçlü kılar. Tasarım ekipleri, herkes işaretçi yerleşimlerini gerçek zamanlı görerek mockup'ları birlikte gözden geçirebilir. Müşteri destek ekipleri, sorunları belirlemek için ekran görüntülerini birlikte notlandırabilir. Eğitim grupları, oluşturuldukça herkesin birbirinin işaretçilerini gördüğü diyagramları tartışabilir.

Anında geri bildirim, kullanıcıların güncellemeleri görmek için yenileme yapması gereken geleneksel yorum sistemlerine kıyasla daha ilgi çekici ve üretken bir işbirliği deneyimi yaratır.

Sorularınız mı var?

FastComments Image Chat için bu kadar! Herhangi bir sorunuz varsa, uygulama konusunda yardıma ihtiyacınız olursa veya özellik önerileriniz varsa, lütfen aşağıda bize bildirin ya da destek ekibimizle iletişime geçin.

Image Chat'in nasıl çalıştığını görmek için canlı demoyu demo sayfamızda inceleyin.