 
- 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 | 消息内容 它是添加到“页面内容”并用于消息包装器的必需附加类。 | 
| 2 | 消息 它是消息气泡的必需元素。 | 
| 3 | 消息日期 它使用日期戳容器来显示发送或接收消息的日期和时间。 | 
| 4 | 信息 这是要显示的单个消息。 | 
单消息内部零件
下表显示了简单消息内部部分的类及其描述。
| 序列号 | 类别和描述 | 
|---|---|
| 1 | 消息名称 它提供发件人姓名。 | 
| 2 | 消息文本 使用气泡类型定义文本。 | 
| 3 | 消息头像 它指定发件人头像。 | 
| 4 | 消息标签 它指定气泡下方的文本标签。 | 
单消息容器的附加类
下表显示了单个消息容器描述的附加类。
| 序列号 | 类别和描述 | 
|---|---|
| 1 | 消息已发送 它指定消息是由用户发送的,并在右侧以绿色背景色显示。 | 
| 2 | 收到消息 用于显示单个消息,表明该消息已被用户接收,并以灰色背景显示在左侧。 | 
| 3 | 留言图片 它是一个附加类,用于通过一条消息显示图像。 | 
| 4 | 带头像的消息 它是一个附加类,用于显示带有头像的单个消息(已接收或已发送)。 | 
| 5 | 带尾消息 您可以为单条消息(已接收或已发送)添加气泡尾部。 | 
单条消息的附加可用类
下表显示了单个消息的可用类别及其说明。
| 序列号 | 类别和描述 | 
|---|---|
| 1 | 消息隐藏名称 它是一个附加类,用于隐藏单个消息(接收或发送)的消息名称。 | 
| 2 | 消息隐藏头像 它是一个附加类,用于隐藏单个消息(接收或发送)的消息头像。 | 
| 3 | 消息隐藏标签 它是一个附加类,用于隐藏单个消息(已接收或已发送)的消息标签。 | 
| 4 | 消息最后 您可以使用此类来指示单个消息(已接收或已发送)的一个发件人在当前对话中最后接收或发送的消息。 | 
| 5 | 消息优先 您可以使用此类来指示单个消息(已接收或已发送)的一个发件人在当前对话中第一个收到或第一个发送的消息。 | 
使用 JavaScript 初始化消息
您可以使用以下方法用 JavaScript 初始化消息 -
myApp.messages(messagesContainer, parameters)
该方法有两个选项 -
- messagesContainer - 它是必需的 HTML 元素或字符串,其中包含消息容器 HTML 元素。 
- 参数- 它指定带有消息参数的对象。 
消息参数
下表显示了消息的参数及其说明。
| 序列号 | 参数及说明 | 类型 | 默认 | 
|---|---|---|---|
| 1 | 自动布局 它通过启用它来向每条消息添加额外的必需类。 | 布尔值 | 真的 | 
| 2 | 新消息优先 通过启用它,您可以在顶部显示消息而不是在底部显示消息。 | 布尔值 | 错误的 | 
| 3 | 消息 它显示消息数组,其中每条消息应表示为带有消息参数的对象。 | 大批 | - | 
| 4 | 消息模板 它显示单个消息模板。 | 细绳 | - | 
消息属性
下表显示了带有描述的消息的属性。
| 序列号 | 属性及描述 | 
|---|---|
| 1 | myMessages.params 您可以使用 object 来初始化传递的参数。 | 
| 2 | myMessages.container 使用消息栏 HTML 容器定义 DOM7 元素。 | 
消息方法
下表显示了带有说明的消息方法。
| 序列号 | 方法及说明 | 
|---|---|
| 1 | myMessages.addMessage(messageParameters, 方法, 动画); 可以使用方法参数将消息添加到开头或结尾。 它具有以下参数 - 
 | 
| 2 | myMessages.appendMessage(messageParameters, animate); 它将一条消息添加到消息容器的末尾。 | 
| 3 | myMessages.prependMessage(messageParameters, animate); 它将一条消息添加到消息容器的开头。 | 
| 4 | myMessages.addMessages(消息、方法、动画); 您可以一次添加多条消息。 它有以下参数 - 
 | 
| 5 | myMessages.removeMessage(消息); 它用于删除消息。 它有以下参数 - 
 | 
| 6 | myMessages.removeMessages(消息); 您可以删除多条消息。 它有以下参数 - 
 | 
| 7 | myMessages.scrollMessages(); 您可以根据新消息的第一个参数从上到下滚动消息,反之亦然。 | 
| 8 | myMessages.layout(); 自动布局可以应用于消息。 | 
| 9 | myMessages.clean(); 它用于清理消息。 | 
| 10 | myMessages.destroy(); 它用于销毁消息。 | 
单个消息参数
下表显示了单个消息的参数及其说明。
| 序列号 | 参数及说明 | 类型 | 默认 | 
|---|---|---|---|
| 1 | 文本 它定义消息文本,可以是 HTML 字符串。 | 细绳 | - | 
| 2 | 姓名它指定发件人姓名。 | 细绳 | - | 
| 3 | 头像 它指定发件人头像 URL 字符串。 | 细绳 | - | 
| 4 | 时间 它指定消息的时间字符串,如“9:45 AM”、“18:35”。 | 细绳 | - | 
| 5 | 类型 它提供消息的类型是否可以发送或接收消息。 | 细绳 | 发送 | 
| 6 | 标签 它定义了消息的标签。 | 细绳 | - | 
| 7 | 天 它给出消息的日期字符串,如“星期日”、“星期一”、“昨天”等。 | 细绳 | - | 
使用 HTML 初始化消息
您可以使用 HTML 来初始化消息,而无需使用 JavaScript,方法是使用消息的附加messages-init类,并使用data-属性来传递所需的参数,如下面给出的代码片段所示 -
...
   <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文件。 
- 以 http://localhost/messages.html 打开此 HTML 文件,输出如下所示。 
- 当您在消息框中输入消息并单击“发送”按钮时,表明您的消息已发送,并在右侧以绿色背景显示。 
- 您收到的消息显示在左侧,带有灰色背景以及发件人姓名。