Framework7 - Mensajes
Descripción
Los mensajes son un componente de Framework7, que brinda visualización de comentarios y sistema de mensajería en la aplicación.
Diseño de mensajes
El framework7 tiene la siguiente estructura de diseño de mensajes:
<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>
El diseño contiene las siguientes clases en diferentes áreas:
Diseño de página de mensajes
La siguiente tabla muestra las clases de diseño de página de mensajes con descripción.
S. No | Clases y descripción |
---|---|
1 | messages-content Es una clase adicional requerida que se agrega a "page-content" y se usa para el envoltorio de mensajes. |
2 | messages Es un elemento obligatorio para las burbujas de mensajes. |
3 | messages-date Utiliza un contenedor de sello de fecha para mostrar la fecha y hora del mensaje enviado o recibido. |
4 | message Es un solo mensaje que se mostrará. |
Partes internas de mensaje único
La siguiente tabla muestra las clases de partes internas de mensajes simples con descripción.
S. No | Clases y descripción |
---|---|
1 | message-name Proporciona el nombre del remitente. |
2 | message-text Defina el texto con el tipo de burbuja. |
3 | message-avatar Especifica el avatar del remitente. |
4 | message-label Especifica la etiqueta de texto debajo de la burbuja. |
Clases adicionales para contenedor de mensaje único
La siguiente tabla muestra clases adicionales para la descripción del contenedor de un solo mensaje.
S. No | Clases y descripción |
---|---|
1 | message-sent Especifica que el mensaje fue enviado por el usuario y se muestra con un color de fondo verde en el lado derecho. |
2 | message-received Se utiliza para mostrar el mensaje único que indica que el mensaje fue recibido por el usuario y permanece en el lado izquierdo con un color de fondo gris. |
3 | message-pic Es una clase adicional para mostrar imágenes con un solo mensaje. |
4 | message-with-avatar Es una clase adicional para mostrar un solo mensaje (recibido o enviado) con avatar. |
5 | message-with-tail Puede agregar una cola de burbuja para un solo mensaje (recibido o enviado). |
Clases adicionales disponibles para mensaje único
La siguiente tabla muestra las clases disponibles para un solo mensaje con descripción.
S. No | Clases y descripción |
---|---|
1 | message-hide-name Es una clase adicional para ocultar el nombre del mensaje de un solo mensaje (recibido o enviado). |
2 | message-hide-avatar Es una clase adicional para ocultar el avatar de un mensaje para un solo mensaje (recibido o enviado). |
3 | message-hide-label Es una clase adicional para ocultar la etiqueta del mensaje de un solo mensaje (recibido o enviado). |
4 | message-last Puede usar esta clase para indicar el último mensaje recibido o enviado en la conversación actual por un remitente para un solo mensaje (recibido o enviado). |
5 | message-first Puede usar esta clase para indicar el primer mensaje recibido o enviado en la conversación actual por un remitente para un solo mensaje (recibido o enviado). |
Inicializar mensajes con JavaScript
Puede inicializar los mensajes con JavaScript utilizando el siguiente método:
myApp.messages(messagesContainer, parameters)
El método tiene dos opciones:
messagesContainer - Es un elemento HTML obligatorio o una cadena que incluye un elemento HTML contenedor de mensajes.
parameters - Especifica un objeto con parámetros de mensajes.
Parámetros de mensajes
La siguiente tabla muestra los parámetros de los mensajes con descripción.
S. No | Descripción de parámetros | Tipo | Defecto |
---|---|---|---|
1 | autoLayout Agrega clases requeridas adicionales a cada mensaje habilitándolo. |
booleano | cierto |
2 | newMessagesFirst Puede mostrar el mensaje en la parte superior en lugar de mostrarlo en la parte inferior habilitándolo. |
booleano | falso |
3 | messages Muestra una matriz de mensajes en la que cada mensaje debe representarse como un objeto con parámetros de mensaje. |
formación | - |
4 | messageTemplate Muestra la plantilla de mensaje único. |
cuerda | - |
Propiedades de mensajes
La siguiente tabla muestra las propiedades de los mensajes con descripción.
S. No | Descripción de propiedad |
---|---|
1 | myMessages.params Puede inicializar los parámetros pasados con object. |
2 | myMessages.container Define el elemento DOM7 con un contenedor HTML de barra de mensajes. |
Métodos de mensajes
La siguiente tabla muestra los métodos de los mensajes con descripción.
S. No | Método y descripción |
---|---|
1 | myMessages.addMessage(messageParameters, method, animate); El mensaje se puede agregar al principio o al final utilizando el parámetro de método. Tiene los siguientes parámetros:
|
2 | myMessages.appendMessage(messageParameters, animate); Agrega un mensaje al final del contenedor de mensajes. |
3 | myMessages.prependMessage(messageParameters, animate); Agrega un mensaje al principio del contenedor de mensajes. |
4 | myMessages.addMessages(messages, method, animate); Puede agregar varios mensajes a la vez. Tiene el siguiente parámetro:
|
5 | myMessages.removeMessage(message); Se utiliza para eliminar el mensaje. Tiene el siguiente parámetro:
|
6 | myMessages.removeMessages(messages); Puede eliminar los mensajes múltiples. Tiene el siguiente parámetro:
|
7 | myMessages.scrollMessages(); Puede desplazarse por los mensajes de arriba a abajo y viceversa, según el primer parámetro del mensaje nuevo. |
8 | myMessages.layout(); El diseño automático se puede aplicar a los mensajes. |
9 | myMessages.clean(); Se utiliza para limpiar los mensajes. |
10 | myMessages.destroy(); Se usa para destruir los mensajes. |
Parámetros de mensaje único
La siguiente tabla muestra los parámetros para un solo mensaje con descripción.
S. No | Descripción de parámetros | Tipo | Defecto |
---|---|---|---|
1 | text Define el texto del mensaje, que podría ser una cadena HTML. |
cuerda | - |
2 | name Especifica el nombre del remitente. |
cuerda | - |
3 | avatar Especifica la cadena de URL del avatar del remitente. |
cuerda | - |
4 | time Especifica la cadena de tiempo del mensaje como '9:45 AM', '18: 35 '. |
cuerda | - |
5 | type Proporciona el tipo de mensaje, ya sea que se pueda enviar o recibir. |
cuerda | expedido |
6 | label Define la etiqueta del mensaje. |
cuerda | - |
7 | day Da la cadena del día del mensaje como 'domingo', 'lunes', 'ayer', etc. |
cuerda | - |
Inicializar mensajes con HTML
Puede inicializar los mensajes con HTML sin JavaScript utilizando la clase messages-init adicional a los mensajes y utilizar los atributos de datos para pasar los parámetros necesarios como se muestra en el fragmento de código que se proporciona a continuación:
...
<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>
...
Ejemplo
El siguiente ejemplo demuestra el uso de mensajes en Framework7:
<!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>
Salida
Realicemos los siguientes pasos para ver cómo funciona el código dado anteriormente:
Guarde el código HTML proporcionado anteriormente como messages.html archivo en la carpeta raíz de su servidor.
Abra este archivo HTML como http: //localhost/messages.html y la salida se muestra como se muestra a continuación.
Cuando escribe un mensaje en el cuadro de mensaje y hace clic en el botón Enviar, especifica que su mensaje ha sido enviado y se muestra con un color de fondo verde en el lado derecho.
El mensaje que recibe aparece en el lado izquierdo con el fondo gris junto con el nombre del remitente.