Framework7 - Tin nhắn

Sự miêu tả

Tin nhắn là thành phần của Framework7, cung cấp hình ảnh trực quan về nhận xét và hệ thống nhắn tin trong ứng dụng.

Bố cục Tin nhắn

Framework7 có cấu trúc bố cục thư sau:

<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>

Bố cục chứa các lớp sau trong các khu vực khác nhau:

Bố cục trang tin nhắn

Bảng sau đây cho thấy các lớp của bố cục trang thông báo với mô tả.

S.Không Lớp học & Mô tả
1

messages-content

Nó là một lớp bổ sung bắt buộc được thêm vào "nội dung trang" và được sử dụng cho trình bao bọc thư.

2

messages

Nó là một yếu tố bắt buộc đối với bong bóng tin nhắn.

3

messages-date

Nó sử dụng hộp chứa tem ngày để hiển thị ngày và thời gian của tin nhắn được gửi hoặc nhận.

4

message

Nó là một thông báo duy nhất được hiển thị.

Bộ phận bên trong tin nhắn đơn

Bảng sau đây cho thấy các lớp của các phần bên trong thông báo đơn giản với mô tả.

S.Không Lớp học & Mô tả
1

message-name

Nó cung cấp tên người gửi.

2

message-text

Xác định văn bản với loại bong bóng.

3

message-avatar

Nó chỉ định hình đại diện người gửi.

4

message-label

Nó chỉ định nhãn văn bản bên dưới bong bóng.

Các lớp bổ sung cho Vùng chứa Thông điệp Đơn

Bảng sau đây hiển thị các lớp bổ sung cho mô tả vùng chứa thông báo đơn.

S.Không Lớp học & Mô tả
1

message-sent

Nó chỉ định rằng tin nhắn được gửi bởi người dùng và được hiển thị với màu nền xanh lá cây ở phía bên phải.

2

message-received

Nó được sử dụng để hiển thị một tin nhắn cho biết rằng, tin nhắn đã được người dùng nhận và nằm ở phía bên trái với màu nền xám.

3

message-pic

Nó là một lớp bổ sung để hiển thị hình ảnh với một tin nhắn.

4

message-with-avatar

Nó là một lớp bổ sung để hiển thị một tin nhắn (đã nhận hoặc đã gửi) với hình đại diện.

5

message-with-tail

Bạn có thể thêm đuôi bong bóng cho một tin nhắn (đã nhận hoặc đã gửi).

Các lớp bổ sung có sẵn cho một tin nhắn

Bảng sau đây cho thấy các lớp có sẵn cho một thông báo với mô tả.

S.Không Lớp học & Mô tả
1

message-hide-name

Nó là một lớp bổ sung để ẩn tên tin nhắn cho một tin nhắn (nhận hoặc gửi).

2

message-hide-avatar

Nó là một lớp bổ sung để ẩn hình đại diện tin nhắn cho một tin nhắn (nhận hoặc gửi).

3

message-hide-label

Nó là một lớp bổ sung để ẩn nhãn tin nhắn cho một tin nhắn (nhận hoặc gửi).

4

message-last

Bạn có thể sử dụng lớp này để chỉ ra tin nhắn đã nhận hoặc đã gửi cuối cùng trong cuộc trò chuyện hiện tại của một người gửi cho một tin nhắn (đã nhận hoặc đã gửi).

5

message-first

Bạn có thể sử dụng lớp này để cho biết tin nhắn nhận được đầu tiên hoặc được gửi đầu tiên trong cuộc trò chuyện hiện tại của một người gửi cho một tin nhắn (đã nhận hoặc đã gửi).

Khởi tạo Tin nhắn bằng JavaScript

Bạn có thể khởi tạo thông báo bằng JavaScript bằng cách sử dụng phương pháp sau:

myApp.messages(messagesContainer, parameters)

Phương pháp này có hai tùy chọn -

  • messagesContainer - Nó là một phần tử hoặc chuỗi HTML bắt buộc bao gồm phần tử HTML chứa thư.

  • parameters - Nó chỉ định một đối tượng với các tham số thông báo.

Thông số Tin nhắn

Bảng sau đây cho thấy các thông số của tin nhắn với mô tả.

S.Không Mô tả về Thông Số Kiểu Mặc định
1

autoLayout

Nó thêm các lớp cần thiết bổ sung cho mỗi thông báo bằng cách kích hoạt nó.

boolean thật
2

newMessagesFirst

Bạn có thể hiển thị tin nhắn ở trên cùng thay vì hiển thị ở dưới cùng bằng cách bật nó.

boolean sai
3

messages

Nó hiển thị một mảng thông báo trong đó mỗi thông báo phải được biểu diễn dưới dạng đối tượng với các tham số thông báo.

mảng -
4

messageTemplate

Nó hiển thị một mẫu tin nhắn.

chuỗi -

Thuộc tính Tin nhắn

Bảng sau đây cho thấy các thuộc tính của thông báo với mô tả.

S.Không Kê khai tài sản
1

myMessages.params

Bạn có thể khởi tạo các tham số được truyền với đối tượng.

2

myMessages.container

Xác định phần tử DOM7 bằng vùng chứa HTML trên thanh thông báo.

Phương thức nhắn tin

Bảng sau đây cho thấy các phương pháp của thông báo với mô tả.

S.Không Phương pháp & Mô tả
1

myMessages.addMessage(messageParameters, method, animate);

Thông báo có thể được thêm vào đầu hoặc cuối bằng cách sử dụng tham số phương thức.

Nó có các thông số sau:

  • messageParameters - Nó cung cấp các thông số tin nhắn để thêm vào.

  • method - Đây là kiểu chuỗi thêm thông điệp vào đầu hoặc cuối vùng chứa thông báo.

  • animate- Đây là kiểu boolean, thêm một thông báo mà không có bất kỳ chuyển tiếp hoặc hoạt ảnh cuộn nào bằng cách đặt nó thành false. Theo mặc định, nó sẽ đúng.

2

myMessages.appendMessage(messageParameters, animate);

Nó thêm một tin nhắn vào cuối vùng chứa tin nhắn.

3

myMessages.prependMessage(messageParameters, animate);

Nó thêm một tin nhắn vào đầu vùng chứa tin nhắn.

4

myMessages.addMessages(messages, method, animate);

Bạn có thể thêm nhiều tin nhắn cùng một lúc.

Nó có tham số sau:

  • messages - Nó cung cấp một mảng thông báo để thêm vào, mảng này sẽ được biểu diễn dưới dạng đối tượng với các tham số thông báo.

5

myMessages.removeMessage(message);

Nó được sử dụng để xóa tin nhắn.

Nó có tham số sau:

  • message - Nó là một phần tử hoặc chuỗi HTML được yêu cầu loại bỏ phần tử thông báo.

6

myMessages.removeMessages(messages);

Bạn có thể xóa nhiều tin nhắn.

Nó có tham số sau:

  • messages - Đây là một mảng bắt buộc với các phần tử HTML hoặc chuỗi loại bỏ các thông báo.

7

myMessages.scrollMessages();

Bạn có thể cuộn tin nhắn từ trên xuống dưới và ngược lại tùy thuộc vào tham số đầu tiên của tin nhắn mới.

số 8

myMessages.layout();

Bố cục tự động có thể được áp dụng cho các tin nhắn.

9

myMessages.clean();

Nó được sử dụng để làm sạch các tin nhắn.

10

myMessages.destroy();

Nó được sử dụng để hủy các tin nhắn.

Tham số tin nhắn đơn

Bảng sau đây hiển thị các tham số cho một thông báo có mô tả.

S.Không Mô tả về Thông Số Kiểu Mặc định
1

text

Nó xác định văn bản tin nhắn, có thể là một chuỗi HTML.

chuỗi -
2

name

Nó chỉ định tên người gửi.

chuỗi -
3

avatar

Nó chỉ định chuỗi URL hình đại diện của người gửi.

chuỗi -
4

time

Nó chỉ định chuỗi thời gian của thông báo như '9:45 AM', '18: 35 '.

chuỗi -
5

type

Nó cung cấp loại tin nhắn cho dù nó có thể được gửi hay nhận.

chuỗi gởi
6

label

Nó xác định nhãn của tin nhắn.

chuỗi -
7

day

Nó cung cấp chuỗi ngày của thông báo như 'chủ nhật', 'thứ hai', 'hôm qua', v.v.

chuỗi -

Khởi tạo Tin nhắn bằng HTML

Bạn có thể khởi tạo thư bằng HTML mà không cần JavaScript bằng cách sử dụng lớp messages-init bổ sung cho thư và sử dụng thuộc tính data- để chuyển các tham số bắt buộc như được hiển thị trong đoạn mã dưới đây -

...
   <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>
...

Thí dụ

Ví dụ sau minh họa việc sử dụng các thông báo trong 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>

Đầu ra

Hãy để chúng tôi thực hiện các bước sau để xem mã đã cho ở trên hoạt động như thế nào -

  • Lưu mã HTML đã cho ở trên dưới dạng messages.html tệp trong thư mục gốc máy chủ của bạn.

  • Mở tệp HTML này dưới dạng http: //localhost/messages.html và kết quả được hiển thị như hình dưới đây.

  • Khi bạn nhập một tin nhắn vào hộp tin nhắn và nhấp vào nút Gửi, nó chỉ định rằng tin nhắn của bạn đã được gửi và được hiển thị với màu nền xanh ở phía bên phải.

  • Thư mà bạn nhận được, xuất hiện ở phía bên trái với nền màu xám cùng với tên người gửi.