パネル React コンポーネント

Panel React コンポーネントは、サイドパネルコンポーネントを表します。

パネルコンポーネント

以下のコンポーネントが含まれています。

パネルプロパティ

プロパティタイプデフォルト説明
side文字列パネルの位置。leftまたはrightです。
leftブール値side="left"のショートカットプロパティ
rightブール値side="right"のショートカットプロパティ
effect文字列パネルエフェクト。coverrevealfloatingpushのいずれかです。
coverブール値effect="cover"のショートカットプロパティ
revealブール値effect="reveal"のショートカットプロパティ
pushブール値effect="push"のショートカットプロパティ
floatingブール値effect="floating"のショートカットプロパティ
visibleBreakpoint数値左パネルが常に表示される最小アプリ幅(px単位)
collapsedBreakpoint数値左パネルが部分的に表示される(折りたたまれた状態)最小アプリ幅(px単位)
swipeブール値falseスワイプでパネルを開閉する機能を有効にする場合に有効にします。
swipeNoFollowブール値false旧式/低速デバイスでのパフォーマンス向上のためのフォールバックオプション。これを有効にすると、スワイプパネルはタッチ移動中に指に追従せず、左/右にスワイプすると自動的に開閉されます。
swipeActiveArea数値0パネルスワイプをトリガーする画面から見えない端の幅(px単位)
swipeOnlyCloseブール値falseこのパラメータにより、スワイプでパネルを閉じることができます(開くことはできません)。(swipeも有効にする必要があります)
swipeThreshold数値0「タッチ距離」がこの値(px単位)未満の場合、パネルはスワイプで動きません。
backdropブール値trueパネルのバックドロップ(パネルの後ろに表示される暗い半透明レイヤー)を有効にします。
backdropElHTMLElement
文字列
カスタムバックドロップ要素のHTML要素または文字列CSSセレクター
closeByBackdropClickブール値trueパネルの外側をクリックしてパネルを閉じる機能を有効/無効にします。
resizableブール値falseサイズ変更可能なパネルを有効/無効にします。
containerElHTMLElement
文字列
パネルをマウントする要素(デフォルトはアプリのルート要素)
openedブール値パネルを開閉し、初期状態を設定できます。

パネルイベント

イベント説明
panelOpenパネルが開くアニメーションを開始したときにトリガーされます。
panelOpenedパネルが開くアニメーションが完了した後にトリガーされます。
panelCloseパネルが閉じるアニメーションを開始したときにトリガーされます。
panelClosedパネルが閉じるアニメーションが完了した後にトリガーされます。
panelBackdropClickパネルのバックドロップがクリックされたときにトリガーされます。
panelSwipeタッチスワイプアクション中にスワイプパネルに対してトリガーされます。
panelSwipeOpenスワイプで開くまさに最初の段階でトリガーされます。
panelCollapsedBreakpointアプリの幅がcollapsedBreakpointと一致したときに表示/非表示になったときにトリガーされます。
panelBreakpointアプリの幅がvisibleBreakpointと一致したときに表示/非表示になったときにトリガーされます。

パネルを開閉する

パネルの状態を制御し、開閉できます。

panel.jsx
import React from 'react';
import { Navbar, Page, Block, Button, Link, Panel } from 'framework7-react';

export default () => (
  <Page id="panel-page">
    <Navbar title="Panel / Side panels"></Navbar>
    <Panel left cover containerEl="#panel-page" id="panel-nested">
      <Page>
        <Block strongIos outlineIos>
          <p>This is page-nested Panel.</p>
          <p>
            <Link panelClose>Close me</Link>
          </p>
        </Block>
      </Page>
    </Panel>
    <Block strongIos outlineIos>
      <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>
    </Block>
    <Block strongIos outlineIos>
      <p className="grid grid-cols-2 grid-gap">
        <Button raised fill panelOpen="left">
          Open left panel
        </Button>
        <Button raised fill panelOpen="right">
          Open right panel
        </Button>
      </p>
      <p>
        <Button raised fill panelOpen="#panel-nested">
          Open nested panel
        </Button>
      </p>
    </Block>
  </Page>
);