- Framework7 教程
- Framework7 - 主页
- Framework7 - 概览
- Framework7 - 环境
- Framework7 组件
- Framework7 - 布局
- Framework7 - 导航栏
- Framework7 - 工具栏
- Framework7 - 搜索栏
- Framework7 - 状态栏
- Framework7 - 侧边栏
- Framework7 - 内容块
- Framework7 - 布局网格
- Framework7 - 覆盖层
- Framework7 - 预加载器
- Framework7 - 进度条
- Framework7 - 列表视图
- Framework7 - 手风琴
- Framework7 - 卡片
- Framework7 - 芯片
- Framework7 - 按钮
- Framework7 - 操作按钮
- Framework7 - 表单
- Framework7 - 标签页
- Framework7 - Swiper 滑块
- Framework7 - 图片浏览器
- Framework7 - 自动完成
- Framework7 - 选择器
- Framework7 - 日历
- Framework7 - 刷新
- Framework7 - 无限滚动
- Framework7 - 信息
- Framework7 - 信息栏
- Framework7 - 通知
- Framework7 - 延迟加载
- Framework7 样式
- Framework7 - 颜色主题
- Framework7 - 线条
- Framework7 模板
- Framework7 - 模板概览
- Framework7 - 自动编译
- Framework7 - Template7 页面
- Framework7 快速点击
- Framework7 - 活动状态
- Framework7 - 长按事件
- Framework7 - 触控涟漪
- Framework7 实用资源
- Framework7 - 快速指南
- Framework7 - 实用资源
- Framework7 - 讨论
Framework7 - 信息
说明
信息是 Framework7 的组件,它可在应用程序中实现可视化注释和消息传递系统。
信息布局
Framework7 具有以下信息布局结构 −
<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>
该布局在不同的区域包含以下类 −
消息页面布局
下表显示了消息页面布局的类以及说明。
| 序号 | 类和说明 |
|---|---|
| 1 | messages-content 这是添加到“page-content”中的必需的附加类,用于消息包装器。 |
| 2 | messages 这是消息气泡的必需元素。 |
| 3 | messages-date 它使用日期戳容器显示发送或接收消息的日期和时间。 |
| 4 | message 它是要显示的单个消息。 |
单个消息内部部分
下表显示了简单消息内部部分的类以及说明。
| 序号 | 类和说明 |
|---|---|
| 1 | message-name 它提供发件人姓名。 |
| 2 | message-text 使用气泡类型定义文本。 |
| 3 | message-avatar 它指定发件人头像。 |
| 4 | message-label 它指定气泡下方文本标签。 |
单个消息容器的附加类
下表显示了单个消息容器描述的附加类。
| 序号 | 类和说明 |
|---|---|
| 1 | message-sent 它指定消息是由用户发送的,并在右侧以绿色背景颜色显示。 |
| 2 | message-received 用于显示单个消息,指示该消息是用户接收的,并保留在左侧,背景颜色为灰色。 |
| 3 | message-pic 它是显示单个消息图像的附加类。 |
| 4 | message-with-avatar 它是显示单个消息(接收或发送)和头像的附加类。 |
| 5 | message-with-tail 你可以在单条信息(接收或发送)中添加气泡尾巴。 |
适用于单条信息的附加可用类
下表显示了适用于单条信息且带有说明的可用类。
| 序号 | 类和说明 |
|---|---|
| 1 | message-hide-name 这是一种附加类,适用于隐藏单条信息(接收或发送)的消息名称。 |
| 2 | message-hide-avatar 这是一种附加类,适用于隐藏单条信息(接收或发送)的消息头像。 |
| 3 | message-hide-label 这是一种附加类,适用于隐藏单条信息(接收或发送)的消息标签。 |
| 4 | message-last 你可以使用此类,指示发送者在当前会话中收到的或发送的最后一条信息。 |
| 5 | message-first 你可以使用此类,指示发送者在当前会话中收到的或发送的第一条信息。 |
使用 JavaScript 初始化信息
你可以使用 JavaScript 通过以下方法初始化信息 −
myApp.messages(messagesContainer, parameters)
此方法包含两个选项 −
messagesContainer − 它是一个必需的 HTML 元素或包含消息容器 HTML 元素的字符串。
parameters − 它指定具有消息参数的对象。
消息参数
下表显示了具有说明的消息参数。
| 序号 | 参数和说明 | 类型 | 默认 |
|---|---|---|---|
| 1 | autoLayout 启用 autoLayout 后,它将对每条信息添加所需的附加类。 |
布尔值 | true |
| 2 | newMessagesFirst 启用 newMessagesFirst 后,你可以在顶部显示信息,而不是在底部显示信息。 |
布尔值 | false |
| 3 | messages 它显示一个由表示为具有消息参数的对象的信息组成的数组。 |
数组 | - |
| 4 | messageTemplate 它显示单条信息模板。 |
字符串 | - |
信息属性
下表显示了具有说明的消息属性。
| 序号 | 属性及说明 |
|---|---|
| 1 | myMessages.params 你可以使用对象初始化传递的参数。 |
| 2 | myMessages.container 定义带有消息栏 HTML 容器的 DOM7 元素。 |
信息方法
下表显示了具有说明的消息方法。
| 序号 | 方法和说明 |
|---|---|
| 1 | myMessages.addMessage(messageParameters, method, animate); 可以使用 method 参数将信息添加到开头或结尾。 它具有以下参数 −
|
| 2 | myMessages.appendMessage(messageParameters, animate); 它将一条信息添加到消息容器的末尾。 |
| 3 | myMessages.prependMessage(messageParameters, animate); 它将一条信息添加到消息容器的开头。 |
| 4 | myMessages.addMessages(messages, method, animate); 你可以一次添加多条信息。 它具有以下参数 −
|
| 5 | myMessages.removeMessage(message); 它用于删除信息。 它具有以下参数 −
|
| 6 | myMessages.removeMessages(messages); 你可以删除多条信息。 它具有以下参数 −
|
| 7 | myMessages.scrollMessages(); 你可以根据新消息的第一个参数从上到下或从下到上滚动消息。 |
| 8 | myMessages.layout(); 消息可以应用自动布局。 |
| 9 | myMessages.clean(); 它用于清理消息。 |
| 10 | myMessages.destroy(); 它用于销毁消息。 |
单个消息参数
下表显示了带描述的单个消息的参数。
| 序号 | 参数和说明 | 类型 | 默认 |
|---|---|---|---|
| 1 | text 它定义消息文本,它可以是 HTML 字符串。 |
字符串 | - |
| 2 | name 它指定发件人名称。 |
字符串 | - |
| 3 | avatar 它指定发件人头像的 URL 字符串。 |
字符串 | - |
| 4 | time 它指定消息的时间字符串,如“9:45 AM”、“18:35”。 |
字符串 | - |
| 5 | type 它提供消息的类型,它可以是已发送或已接收的消息。 |
字符串 | sent |
| 6 | label 它定义消息的标签。 |
字符串 | - |
| 7 | day 它提供消息的日期字符串,如“星期日”、“星期一”、“昨天”等。 |
字符串 | - |
使用 HTML 初始化消息
你可以使用附加的 messages-init 类将 messages 放在 HTML 中,并且使用 data- 属性来传递所需参数,如下面给出的代码片段中所示,而无需 JavaScript 来初始化消息。
...
<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>
...
示例
以下示例演示了在 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>
输出
让我们执行以下步骤来了解上面给出的代码如何工作 −
将上面给出的 HTML 代码另存为 messages.html 文件,并保存在你的服务器根文件夹中。
以 https:///messages.html 的形式打开此 HTML 文件,输出将显示如下。
当你在消息框中输入消息并单击发送按钮时,它指定你的消息已发送,并在右侧以绿色背景色显示。
你接收到的消息与发件人名称一起显示在左侧,背景为灰色。