ある要素を対象とするポップオーバーを表示するコンポーネントです。
A popover can be used to give additional information about a component or add extra functionality.
The usage is very similar to that of <ons-dialog>
and <ons-alert-dialog>
. It is defined using the <ons-popover>
tag:
<ons-popover var="popover">
This is a popover!
</ons-popover>
var
attribute is used to store the popover in a variable for later access.
It is hidden by default and usually attached directly to the <body>
tag.
To display the popover you need to get a reference to the element and execute the show(target, options)
method. The target
argument can be either a DOM element, a query selector string or an Event
object.
Just like the <ons-dialog>
and <ons-alert-dialog>
elements the popover can be loaded from a template. It is done by using the ons.createElement(template)
utility function. It returns a Promise
that resolves to the popover element.
<template id="popover.html">
<ons-popover>
This popover is defined as a template.
</ons-popover>
</template>
ons
.createElement('popover.html', { append: true })
.then(function(popover) {
popover.show();
});
For AngularJS, an extra parameter can be passed to specify the scope of the new popover: ons.createElement('popover.html', { parentScope: $scope });
cancelable
attributeThe <ons-popover>
supports the cancelable
attribute. This enables hiding the popover when the user taps outside of it or presses the back button on an Android device.
<ons-popover cancelable>
This popover can be cancelled!
</ons-popover>
名前 | 型 / デフォルト値 | 概要 |
---|---|---|
modifier | String | ポップオーバーの表現を指定します。 Optional. |
direction | String |
ポップオーバーを表示する方向を空白区切りで複数指定できます。 指定できる方向は、”up”, “down”, “left”, “right”の4つです。空白区切りで複数指定することもできます。 複数指定された場合、対象とする要素に合わせて指定した値から自動的に選択されます。 Optional. |
cancelable | この属性があると、ポップオーバーが表示された時に、背景やバックボタンをタップした時にをポップオーバー閉じます。 Optional. | |
cover-target | If set the popover will cover the target on the screen. (翻訳中) Optional. | |
target | String | ポップオーバーの対象とするデフォルト要素のIDを指定します。 Optional. |
animation | String | ポップオーバーを表示する際のアニメーション名を指定します。 Optional. |
animation-options | Expression | アニメーション時のduration, timing, delayをオブジェクトリテラルで指定します。e.g. {duration: 0.2, delay: 1, timing: ‘ease-in’} Optional. |
mask-color | Color | 背景のマスクの色を指定します。デフォルトは”rgba(0, 0, 0, 0.2)”です。 Optional. |
visible | Boolean |
要素が見える場合にtrue 。
Optional.
|
var | String | このポップオーバーを参照するための名前を指定します。 Optional. 初期化時のみ有効 |
ons-preshow | Expression | “preshow”イベントが発火された時の挙動を独自に指定できます。 Optional. 初期化時のみ有効 |
ons-prehide | Expression | “prehide”イベントが発火された時の挙動を独自に指定できます。 Optional. 初期化時のみ有効 |
ons-postshow | Expression | “postshow”イベントが発火された時の挙動を独自に指定できます。 Optional. 初期化時のみ有効 |
ons-posthide | Expression | “posthide”イベントが発火された時の挙動を独自に指定できます。 Optional. 初期化時のみ有効 |
ons-destroy | Expression | “destroy”イベントが発火された時の挙動を独自に指定できます。 Optional. 初期化時のみ有効 |
名前 | 概要 |
---|---|
coverTarget | If set the popover will cover the target on the screen. (翻訳中) |
target | ポップオーバーの対象とするデフォルト要素のIDを指定します。 |
animationOptions | アニメーション時のduration, timing, delayをオブジェクトリテラルで指定します。例:{duration: 0.2, delay: 1, timing: ‘ease-in’} |
visible |
要素が見える場合にtrue 。
|
cancelable |
A boolean value that specifies whether the popover is cancelable or not. When the popover is cancelable it can be closed by tapping the background or by pressing the back button on Android devices. (翻訳中) |
onDeviceBackButton | バックボタンハンドラ。 |
maskColor | 背景のマスクの色を指定します。”rgba(0, 0, 0, 0.2)”がデフォルト値です。 |
シグネチャ | 概要 |
---|---|
show(target, [options]) | 対象とする要素にポップオーバーを表示します。target引数には、$eventオブジェクトやDOMエレメントやCSSセレクタを渡すことが出来ます。 |
hide([options]) | ポップオーバーを閉じます。 |
on(eventName, listener) | イベントリスナーを追加します。 |
once(eventName, listener) | 一度だけ呼び出されるイベントリスナーを追加します。 |
off(eventName, [listener]) | イベントリスナーを削除します。もしイベントリスナーを指定しなかった場合には、そのイベントに紐づく全てのイベントリスナーが削除されます。 |
対象とする要素にポップオーバーを表示します。target引数には、$eventオブジェクトやDOMエレメントやCSSセレクタを渡すことが出来ます。
返り値:
名前 | 型 | 概要 |
---|---|---|
target | String|Event|HTMLElement | ポップオーバーのターゲットとなる要素を指定します。CSSセレクタかeventオブジェクトかDOM要素のいずれかを渡せます。 |
options | Object | オプションを指定するオブジェクト。 |
options.animation | String | アニメーション名を指定します。”fade-ios”, “fade-md”, “none”, “default”のいずれかを指定できます。 |
options.animationOptions | String | アニメーション時のduration, delay, timingを指定します。e.g. {duration: 0.2, delay: 0.4, timing: ‘ease-in’} |
options.callback | Function | ポップオーバーが表示され終わった後に呼び出される関数オブジェクトを指定します。 |
ポップオーバーを閉じます。
返り値:
名前 | 型 | 概要 |
---|---|---|
options | Object | オプションを指定するオブジェクト。 |
options.animation | String | アニメーション名を指定します。”fade-ios”, “fade-md”, “none”, “default”のいずれかを指定できます。 |
options.animationOptions | String | アニメーション時のduration, delay, timingを指定します。e.g. {duration: 0.2, delay: 0.4, timing: ‘ease-in’} |
options.callback | Function | ポップオーバーが隠れた後に呼び出される関数オブジェクトを指定します。 |
イベントリスナーを追加します。
名前 | 型 | 概要 |
---|---|---|
eventName | String | イベント名を指定します。 |
listener | Function | このイベントが発火された際に呼び出される関数オブジェクトを指定します。 |
一度だけ呼び出されるイベントリスナーを追加します。
名前 | 型 | 概要 |
---|---|---|
eventName | String | イベント名を指定します。 |
listener | Function | イベントが発火した際に呼び出される関数オブジェクトを指定します。 |
イベントリスナーを削除します。もしイベントリスナーを指定しなかった場合には、そのイベントに紐づく全てのイベントリスナーが削除されます。
名前 | 型 | 概要 |
---|---|---|
eventName | String | イベント名を指定します。 |
listener | Function | 削除するイベントリスナーを指定します。 |
名前 | 概要 |
---|---|
preshow | ポップオーバーが表示される直前に発火します。 |
postshow | ポップオーバーが表示された直後に発火します。 |
prehide | ポップオーバーが隠れる直前に発火します。 |
posthide | ポップオーバーが隠れた後に発火します。 |
dialogcancel | Fired when the popover is canceled. (翻訳中) |
ポップオーバーが表示される直前に発火します。
名前 | 型 | 概要 |
---|---|---|
event | Object | Event object. |
event.popover | Object | コンポーネントのオブジェクト。 |
event.cancel | Function | この関数を呼び出すと、ポップオーバーの表示がキャンセルされます。 |
ポップオーバーが表示された直後に発火します。
名前 | 型 | 概要 |
---|---|---|
event | Object | Event object. |
event.popover | Object | コンポーネントのオブジェクト。 |
ポップオーバーが隠れる直前に発火します。
名前 | 型 | 概要 |
---|---|---|
event | Object | Event object. |
event.popover | Object | コンポーネントのオブジェクト。 |
event.cancel | Function | この関数を呼び出すと、ポップオーバーが隠れる処理をキャンセルします。 |
ポップオーバーが隠れた後に発火します。
名前 | 型 | 概要 |
---|---|---|
event | Object | Event object. |
event.popover | Object | コンポーネントのオブジェクト。 |
Fired when the popover is canceled. (翻訳中)
名前 | 型 | 概要 |
---|
Onsen UIに関する質問は、Stack Overflowにてonsen-uiタグを付与してください。Onsen UIチームはあなたの問題解決をお手伝いします。
バグ報告や機能要望については、GitHub Issuesに記載をお願いいたします。
あわせて、下記の情報も参考にしてください。