消息栏
Framework7提供了可缩放的工具栏,用来处理消息。
消息栏的结构
消息栏的结构是很简单的:
<div class="toolbar messagebar">
<div class="toolbar-inner">
<textarea placeholder="Message"></textarea><a href="#" class="link">Send</a>
</div>
</div>
请注意它的位置,应该在“page”里面并且在“messages-content”前面:
<div class="page toolbar-fixed">
<!-- 消息栏 -->
<div class="toolbar messagebar">
<div class="toolbar-inner">
<textarea placeholder="Message"></textarea><a href="#" class="link">Send</a>
</div>
</div>
<!-- messages-content -->
<div class="page-content messages-content">
<div class="messages">
... messages
</div>
</div>
</div>
Initialize Messagebar with JavaScript
Now, when we have Messagebar' HTML, we need to initialize it. We need to use related App's method:
myApp.messagebar(messagebarContainer, parameters) - initialize Messagebar with options
- messagebarContainer - HTMLElement or string (with CSS Selector) of Messagebar container HTML element. Required.
- parameters - object - object with Messagebar parameters. Optional.
- Method returns initialized Messagebar instance
For example:
var myMessagebar = app.messagebar('.messagebar', {
maxHeight: 200
});
Note that Messagebar container should be in DOM on a moment of initialization. So if you use it not on home page, you need to initialize it within pageInit event or callback
Messagebar Parameters
Let's look on list of all available parameters:
Parameter | Type | Default | Description |
---|---|---|---|
maxHeight | number | null | Max height of textarea when it resized depending on amount of its text |
Messagebar Methods & Properties
After we initialize Messagebar we have its initialized instance in variable (like myMessagebar
variable in example above) with helpful methods and properties:
Properties | |
---|---|
myMessagebar.params | Object with passed initialization parameters |
myMessagebar.container | Dom7 element with messagebar container HTML element. |
myMessagebar.textarea | Dom7 element with messagebar textarea HTML element |
Methods | |
myMessagebar.value(newValue); | Set messagebar textarea value/text. Or return messagebar textarea value if newValue is not specified |
myMessagebar.clear(); | Clear textarea and update/reset its size |
myMessagebar.destroy(); | Destroy messagebar instance |
Initialize Messagebar with HTML
If you don't need to use Messagebar methods and properties you can initialize it using HTML without JavaScript. You can do that just by adding additional "messagebar-init" class to .messagebar
. In this case we may pass required parameters using data- attributes.
<div class="toolbar messagebar messagebar-init" data-max-height="200">
<div class="toolbar-inner">
<textarea placeholder="Message"></textarea><a href="#" class="link">Send</a>
</div>
</div>
Parameters that used in camelCase, for example maxHeight, in data- attributes should be used as hypens-case as data-max-height
Access to Messagebar's Instance
If you initialize Messagebar using HTML it is still possible to access to Messagebar's instance. It is "f7Messagebar" property of messagebar's container HTML element:
var myMessagebar = $$('.messagebar')[0].f7Messagebar;
// Now you can use it
myMessagebar.value('Hello world');