パネル Vue コンポーネント
Panel Vue コンポーネントは、サイドパネルコンポーネントを表します。
パネルコンポーネント
以下のコンポーネントが含まれています。
f7-panel
- パネル要素
パネルプロパティ
プロパティ | 型 | デフォルト | 説明 |
---|---|---|---|
side | 文字列 | パネルの位置。left またはright を指定できます。 | |
left | ブール値 | side="left" のショートカットプロパティ | |
right | ブール値 | side="right" のショートカットプロパティ | |
effect | 文字列 | パネルのエフェクト。cover 、reveal 、push を指定できます。 | |
cover | ブール値 | effect="cover" のショートカットプロパティ | |
reveal | ブール値 | effect="reveal" のショートカットプロパティ | |
push | ブール値 | effect="push" のショートカットプロパティ | |
floating | ブール値 | effect="floating" のショートカットプロパティ | |
visible-breakpoint | 数値 | 左パネルが常に表示されるアプリの最小幅(px) | |
collapsed-breakpoint | 数値 | 左パネルが部分的に表示される(折り畳まれた状態)アプリの最小幅(px) | |
swipe | ブール値 | false | スワイプでパネルを開閉できるようにする場合に有効にします。 |
swipe-no-follow | ブール値 | false | 古い/遅いデバイスでのパフォーマンス向上のためのフォールバックオプション。これを有効にすると、スワイプパネルはタッチ移動中に指を追従せず、左右にスワイプすると自動的に開閉されます。 |
swipe-active-area | 数値 | 0 | パネルのスワイプをトリガーする画面からの見えない端の幅(px) |
swipe-only-close | ブール値 | false | このパラメータにより、スワイプでパネルを閉じることができます(開くことはできません)。(swipe も有効にする必要があります) |
swipe-threshold | 数値 | 0 | 「タッチ距離」がこの値(px)未満の場合、パネルはスワイプで動きません。 |
backdrop | ブール値 | true | パネルのバックドロップ(パネルの後ろにある暗い半透明レイヤー)を有効にします。 |
backdrop-el | HTMLElement 文字列 | カスタムバックドロップ要素のHTML要素または文字列CSSセレクタ | |
close-by-backdrop-click | ブール値 | true | パネルの外側をクリックしてパネルを閉じることができるかどうかを有効/無効にします。 |
resizable | ブール値 | false | サイズ変更可能なパネルを有効/無効にします。 |
container-el | HTMLElement 文字列 | パネルをマウントする要素(デフォルトはアプリのルート要素) | |
opened | ブール値 | パネルを開閉し、初期状態を設定できます。 |
パネルイベント
イベント | 説明 |
---|---|
panel:open | パネルが開くアニメーションを開始したときにトリガーされます。 |
panel:opened | パネルが開くアニメーションが完了した後にトリガーされます。 |
panel:close | パネルが閉じるアニメーションを開始したときにトリガーされます。 |
panel:closed | パネルが閉じるアニメーションが完了した後にトリガーされます。 |
panel:backdrop-click | パネルのバックドロップがクリックされたときにトリガーされます。 |
panel:swipe | タッチスワイプアクション中にスワイプパネルに対してトリガーされます。 |
panel:swipeopen | スワイプで開く直前にトリガーされます。 |
panel:collapsedbreakpoint | アプリの幅がcollapsedBreakpoint と一致したときに表示/非表示になったときにトリガーされます。 |
panel:breakpoint | アプリの幅がvisibleBreakpoint と一致したときに表示/非表示になったときにトリガーされます。 |
パネル v-model
パネルコンポーネントは、opened
プロパティでv-model
をサポートします。
<template>
<f7-page>
<f7-panel v-model:opened="isOpened">
...
</f7-panel>
<p>Panel is opened: {{ isOpened }}</p>
</f7-page>
</template>
<script>
export default {
data() {
return {
isOpened: false,
};
}
};
</script>
パネルを開閉する
パネルの状態を制御し、開閉することができます。
- パネルAPIを使用する
opened
プロパティにtrue
またはfalse
を渡すことによって- 関連する
panel-open
プロパティを持つリンクまたはボタンをクリックすることによって(開く場合)、panel-close
プロパティを使用して閉じることによって
例
panel.vue
<template>
<f7-page id="panel-page">
<f7-navbar title="Panel / Side panels"></f7-navbar>
<f7-panel id="panel-nested" left cover container-el="#panel-page">
<f7-page>
<f7-block strong-ios outline-ios>
<p>This is page-nested Panel.</p>
<p>
<f7-link panel-close>Close me</f7-link>
</p>
</f7-block>
</f7-page>
</f7-panel>
<f7-block strong-ios outline-ios>
<p>
Framework7 comes with 2 panels (on left and on right), both are optional. You can put
absolutely anything inside: data lists, forms, custom content, and even other isolated app
view (like in right panel now) with its own dynamic navbar.
</p>
</f7-block>
<f7-block strong-ios outline-ios>
<p class="grid grid-cols-2 grid-gap">
<f7-button raised fill panel-open="left"> Open left panel </f7-button>
<f7-button raised fill panel-open="right"> Open right panel </f7-button>
</p>
<p>
<f7-button raised fill panel-open="#panel-nested"> Open nested panel </f7-button>
</p>
</f7-block>
</f7-page>
</template>
<script>
import { f7Navbar, f7Page, f7Block, f7Button, f7Link, f7Panel } from 'framework7-vue';
export default {
components: {
f7Navbar,
f7Page,
f7Block,
f7Button,
f7Link,
f7Panel,
},
};
</script>