Framework7 - Mesajlar
Açıklama
Mesajlar, uygulamadaki yorumların ve mesajlaşma sisteminin görselleştirilmesini sağlayan Framework7 bileşenidir.
Mesaj Düzeni
Framework7 aşağıdaki mesaj düzeni yapısına sahiptir -
<div class = "page">
<div class = "page-content messages-content">
<div class = "messages">
<!-- Defines the date stamp -->
<div class = "messages-date">Monday, Apr 26 <span>10:30</span></div>
<!-- Displays the sent message and by default, it will be in green color on right side -->
<div class = "message message-sent">
<!-- Define the text with bubble type -->
<div class = "message-text">Hello</div>
</div>
<!-- Displays the another sent message -->
<div class = "message message-sent">
<!-- Define the text with bubble type -->
<div class = "message-text">How are you?</div>
</div>
<!-- Displays the received message and by default, it will be in grey color on left side -->
<div class = "message message-with-avatar message-received">
<!-- Provides sender name -->
<div class = "message-name">Smith</div>
<!-- Define the text with bubble type -->
<div class = "message-text">I am fine, thanks</div>
<!-- Defines the another date stamp -->
<div class = "messages-date">Tuesday, April 28 <span>11:16</span></div>
</div>
</div>
</div>
Düzen, farklı alanlarda aşağıdaki sınıfları içerir -
Mesajlar Sayfa Düzeni
Aşağıdaki tablo, açıklamalarla birlikte mesaj sayfa düzeninin sınıflarını gösterir.
S.No | Sınıflar ve Açıklama |
---|---|
1 | messages-content "Sayfa içeriği" ne eklenen ve mesaj sarmalayıcı için kullanılan gerekli bir ek sınıftır. |
2 | messages Mesaj balonları için gerekli bir unsurdur. |
3 | messages-date Gönderilen veya alınan mesajın tarihini ve saatini görüntülemek için tarih damgası konteynerini kullanır. |
4 | message Görüntülenecek tek bir mesajdır. |
Tek Mesaj İç Parçalar
Aşağıdaki tablo, açıklamayla birlikte basit mesaj iç bölümlerinin sınıflarını gösterir.
S.No | Sınıflar ve Açıklama |
---|---|
1 | message-name Gönderenin adını sağlar. |
2 | message-text Metni kabarcık türü ile tanımlayın. |
3 | message-avatar Gönderen avatarını belirtir. |
4 | message-label Kabarcığın altındaki metin etiketini belirtir. |
Tek Mesaj Konteyneri için ek sınıflar
Aşağıdaki tablo, tek mesaj kapsayıcı açıklaması için ek sınıfları gösterir.
S.No | Sınıflar ve Açıklama |
---|---|
1 | message-sent Mesajın kullanıcı tarafından gönderildiğini belirtir ve sağ tarafta yeşil arka plan rengiyle görüntülenir. |
2 | message-received Mesajın kullanıcı tarafından alındığını ve gri arka plan rengi ile sol tarafta kaldığını gösteren tek mesajın görüntülenmesi için kullanılır. |
3 | message-pic Tek bir mesajla görüntüyü görüntülemek için ek bir sınıftır. |
4 | message-with-avatar Avatar ile tek bir mesajı (alınan veya gönderilen) görüntülemek için ek bir sınıftır. |
5 | message-with-tail Tek bir mesaj için (alınan veya gönderilen) bir balon kuyruğu ekleyebilirsiniz. |
Tek Mesaj İçin Kullanılabilir Ek Sınıflar
Aşağıdaki tablo, açıklamayla birlikte tek bir mesaj için mevcut sınıfları gösterir.
S.No | Sınıflar ve Açıklama |
---|---|
1 | message-hide-name Tek bir mesajın (alınan veya gönderilen) mesaj adını gizlemek için ek bir sınıftır. |
2 | message-hide-avatar Tek bir mesaj için (alınan veya gönderilen) mesaj avatarını gizlemek için ek bir sınıftır. |
3 | message-hide-label Tek bir mesajın (alınan veya gönderilen) mesaj etiketini gizlemek için ek bir sınıftır. |
4 | message-last Bu sınıfı, tek bir mesaj için (alınan veya gönderilen) bir gönderen tarafından mevcut görüşmede son alınan veya gönderilen mesajı belirtmek için kullanabilirsiniz. |
5 | message-first Bu sınıfı, mevcut görüşmede bir gönderen tarafından tek bir mesaj için (alınan veya gönderilen) ilk alınan veya ilk gönderilen mesajı belirtmek için kullanabilirsiniz. |
JavaScript ile Mesajları Başlatma
Aşağıdaki yöntemi kullanarak mesajları JavaScript ile başlatabilirsiniz -
myApp.messages(messagesContainer, parameters)
Yöntem iki seçenek alır -
messagesContainer - Mesaj kapsayıcı HTML öğesini içeren gerekli bir HTML öğesi veya dizesidir.
parameters - Mesaj parametreleri olan bir nesneyi belirtir.
Mesaj Parametreleri
Aşağıdaki tablo, açıklamalı mesajların parametrelerini gösterir.
S.No | Parametre ve Açıklama | Tür | Varsayılan |
---|---|---|---|
1 | autoLayout Etkinleştirerek her mesaja ek gerekli sınıfları ekler. |
Boole | doğru |
2 | newMessagesFirst Etkinleştirerek mesajı altta görüntülemek yerine üstte görüntüleyebilirsiniz. |
Boole | yanlış |
3 | messages Her mesajın mesaj parametreleri ile nesne olarak temsil edilmesi gereken bir mesaj dizisi görüntüler. |
dizi | - |
4 | messageTemplate Tek mesaj şablonunu görüntüler. |
dizi | - |
Mesaj Özellikleri
Aşağıdaki tablo, açıklamalı mesajların özelliklerini gösterir.
S.No | Özellik ve Açıklama |
---|---|
1 | myMessages.params Nesne ile aktarılan parametreleri başlatabilirsiniz. |
2 | myMessages.container DOM7 öğesini bir mesaj çubuğu HTML kabıyla tanımlar. |
Mesaj Yöntemleri
Aşağıdaki tablo, açıklamalı mesaj yöntemlerini gösterir.
S.No | Yöntem ve Açıklama |
---|---|
1 | myMessages.addMessage(messageParameters, method, animate); Metot parametresi kullanılarak mesaj başa veya sona eklenebilir. Aşağıdaki parametrelere sahiptir -
|
2 | myMessages.appendMessage(messageParameters, animate); Mesaj kabının sonuna bir mesaj ekler. |
3 | myMessages.prependMessage(messageParameters, animate); Mesaj kabının başlangıcına bir mesaj ekler. |
4 | myMessages.addMessages(messages, method, animate); Aynı anda birden fazla mesaj ekleyebilirsiniz. Aşağıdaki parametreye sahiptir -
|
5 | myMessages.removeMessage(message); Mesajı kaldırmak için kullanılır. Aşağıdaki parametreye sahiptir -
|
6 | myMessages.removeMessages(messages); Birden çok mesajı kaldırabilirsiniz. Aşağıdaki parametreye sahiptir -
|
7 | myMessages.scrollMessages(); Yeni mesajın ilk parametresine bağlı olarak mesajları yukarıdan aşağıya veya tersi yönde kaydırabilirsiniz. |
8 | myMessages.layout(); Mesajlara otomatik düzen uygulanabilir. |
9 | myMessages.clean(); Mesajları temizlemek için kullanılır. |
10 | myMessages.destroy(); Mesajları yok etmek için kullanılır. |
Tek Mesaj Parametreleri
Aşağıdaki tablo, açıklamalı tek bir mesaj için parametreleri göstermektedir.
S.No | Parametre ve Açıklama | Tür | Varsayılan |
---|---|---|---|
1 | text Bir HTML dizesi olabilecek mesaj metnini tanımlar. |
dizi | - |
2 | name Gönderenin adını belirtir. |
dizi | - |
3 | avatar Gönderen avatar URL dizesini belirtir. |
dizi | - |
4 | time '9:45 AM', '18: 35 'gibi mesajın zaman dizesini belirtir. |
dizi | - |
5 | type Mesajın gönderilip gönderilemeyeceğini bildirir. |
dizi | gönderildi |
6 | label Mesajın etiketini tanımlar. |
dizi | - |
7 | day 'Pazar', 'pazartesi', 'dün' vb. Gibi mesajın gün dizisini verir. |
dizi | - |
Mesajları HTML ile Başlatma
Ek kullanarak JavaScript olmadan HTML iletileri başlatabilir mesajları-init için sınıfını mesajlar ve kullanımı veriye aşağıda verilmiştir snippet'ine kodda gösterildiği gibi gerekli parametreleri geçmek özelliklerini -
...
<div class = "page-content messages-content">
<!-- Initialize the messages using additional "messages-init" class-->
<div class = "messages messages-init" data-auto-layout = "true" data-new-messages-first = "false">
...
</div>
</div>
...
Misal
Aşağıdaki örnek, Framework7'de mesajların kullanımını gösterir -
<!DOCTYPE html>
<html>
<head>
<meta name = "viewport" content = "width = device-width, initial-scale = 1,
maximum-scale = 1, minimum-scale = 1, user-scalable = no, minimal-ui" />
<meta name = "apple-mobile-web-app-capable" content = "yes" />
<meta name = "apple-mobile-web-app-status-bar-style" content = "black" />
<title>Messages</title>
<link rel = "stylesheet"
href = "https://cdnjs.cloudflare.com/ajax/libs/framework7/1.4.2/css/framework7.ios.min.css" />
<link rel = "stylesheet"
href = "https://cdnjs.cloudflare.com/ajax/libs/framework7/1.4.2/css/framework7.ios.colors.min.css" />
</head>
<body>
<div class = "views">
<div class = "view view-main">
<div class = "pages">
<div data-page = "home" class = "page navbar-fixed toolbar-fixed">
<div class = "navbar">
<div class = "navbar-inner">
<div class = "left"> </div>
<div class = "center">Messages</div>
<div class = "right"> </div>
</div>
</div>
<div class = "toolbar messagebar">
<div class = "toolbar-inner">
<textarea placeholder = "Message"></textarea><a href = "#" class = "link">Send</a>
</div>
</div>
<div class = "page-content messages-content">
<div class = "messages">
<div class = "messages-date">Friday, Apr 26 <span>10:30</span></div>
<div class = "message message-sent">
<div class = "message-text">Hello</div>
</div>
<div class = "message message-sent">
<div class = "message-text">Happy Birthday</div>
</div>
<div class = "message message-received">
<div class = "message-name">Smith</div>
<div class = "message-text">Thank you</div>
<div style = "background-image:url(/framework7/images/person.png)" class = "message-avatar"></div>
</div>
<div class = "messages-date">Saturday, Apr 27 <span>9:30</span></div>
<div class = "message message-sent">
<div class = "message-text">Good Morning...</div>
</div>
<div class = "message message-sent">
<div class = "message-text"><img src = "/framework7/images/gm.jpg"></div>
<div class = "message-label">Delivered</div>
</div>
<div class = "message message-received">
<div class = "message-name">Smith</div>
<div class = "message-text">Very Good Morning...</div>
<div style = "background-image:url(/framework7/images/person.png)" class = "message-avatar"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script type = "text/javascript"
src = "https://cdnjs.cloudflare.com/ajax/libs/framework7/1.4.2/js/framework7.min.js"></script>
<script>
var myApp = new Framework7();
var $$ = Dom7;
// It indicates conversation flag
var conversationStarted = false;
// Here initiliaze the messages
var myMessages = myApp.messages('.messages', {
autoLayout:true
});
// Initiliaze the messagebar
var myMessagebar = myApp.messagebar('.messagebar');
// Displays the text after clicking the button
$$('.messagebar .link').on('click', function () {
// specifies the message text
var messageText = myMessagebar.value().trim();
// If there is no message, then exit from there
if (messageText.length === 0) return;
// Specifies the empty messagebar
myMessagebar.clear()
// Defines the random message type
var messageType = (['sent', 'received'])[Math.round(Math.random())];
// Provides the avatar and name for the received message
var avatar, name;
if(messageType === 'received') {
name = 'Smith';
}
// It adds the message
myMessages.addMessage ({
// It provides the message text
text: messageText,
// It displays the random message type
type: messageType,
// Specifies the avatar and name of the sender
avatar: avatar,
name: name,
// Displays the day, date and time of the message
day: !conversationStarted ? 'Today' : false,
time: !conversationStarted ? (new Date()).getHours() + ':' + (new Date()).getMinutes() : false
})
// Here you can update the conversation flag
conversationStarted = true;
});
</script>
</body>
</html>
Çıktı
Yukarıda verilen kodun nasıl çalıştığını görmek için aşağıdaki adımları gerçekleştirelim -
Yukarıda verilen HTML kodunu farklı kaydedin messages.html sunucunuzun kök klasöründeki dosya.
Bu HTML dosyasını http: //localhost/messages.html olarak açın ve çıktı aşağıda gösterildiği gibi görüntülenir.
Mesaj kutusuna bir mesaj yazıp Gönder düğmesine tıkladığınızda, mesajınızın gönderildiğini belirtir ve sağ tarafta yeşil arka plan rengiyle görüntülenir.
Aldığınız mesaj, gönderenin adı ile birlikte gri arka planla sol tarafta görünür.