パネル Vue コンポーネント

    Panel Vueコンポーネントは、Side Panelsコンポーネントを表します。

    パネルコンポーネント

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

    • f7-panel - Panel 要素

    パネルのプロパティ

    PropTypeDefaultDescription
    sidestringパネルの側面です。left または right` になります。
    leftbooleanside="left"` のショートカットプロップです。
    rightbooleanside="right"` のショートカット・プロップです。
    effectstringパネルの効果。cover, reveal, push` のいずれかです。
    coverbooleaneffect="cover"`のショートカットプロップです。
    revealbooleaneffect="reveal"`のショートカットプロップです。
    pushbooleanEFFECT="PUSH"`のショートカットプロップ
    visible-breakpointnumber左パネルが常に表示されるようになったときのアプリの最小幅(px単位
    collapsed-breakpointnumber左パネルが部分的に表示される(折りたたまれる)場合のアプリの最小幅(px
    swipebooleanfalseスワイプでパネルを開閉する機能を有効にする場合は、Enableを選択します。
    swipe-no-followbooleanfalse古いデバイスや遅いデバイスでのパフォーマンスを向上させる可能性のあるフォールバックオプションです。このオプションを有効にすると、タッチ操作時にスワイプパネルが指に追従せず、左/右のスワイプで自動的に開閉されるようになります。
    swipe-active-areanumber0パネルのスワイプを誘発するスクリーンからの見えないエッジの幅(px)
    swipe-only-closebooleanfalseこのパラメータは、スワイプでパネルを閉じる(開かない)ことができます。(swipe も有効にしてください)
    swipe-thresholdnumber0touch distance" がこの値 (px) よりも小さい場合、パネルはスワイプでは動きません。
    backdropbooleantrueパネルの背景を有効にします (背後にある暗い半透明のレイヤー)
    backdrop-elHTMLElement
    string
    カスタム背景要素の HTML 要素または文字列 CSS セレクタ
    close-by-backdrop-clickbooleantrueパネルの外側をクリックしてパネルを閉じる機能の有効化/無効化
    resizablebooleanfalseサイズ変更可能なパネルの有効化/無効化
    container-elHTMLElement
    string
    パネルをマウントする要素(デフォルトはアプリのルート要素
    openedbooleanパネルの開閉や初期状態の設定を可能にする

    パネルのイベント

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

    パネルを開く、閉じる

    パネルの状態を制御して、開いたり閉じたりすることができます。

    • Panel APIを使って
    • パネルの opened プロップに true または false を渡す
    • リンクボタンpanel-open プロパティでパネルを開き、panel-close プロパティでパネルを閉じます。

    Examples

    <template>
      <f7-app>
        <!-- Left resizable Panel with Reveal effect -->
        <f7-panel left reveal resizable>
          <f7-view>
            <f7-page>
              <f7-block>Left panel content</f7-block>
            </f7-page>
          </f7-view>
        </f7-panel>
    
        <!-- Right resizable Panel with Cover effect and dark layout theme -->
        <f7-panel right resizable theme-dark>
          <f7-view>
            <f7-page>
              <f7-block>Right panel content</f7-block>
            </f7-page>
          </f7-view>
        </f7-panel>
    
        <f7-view main>
          <f7-page>
            <f7-navbar title="Panel"></f7-navbar>
    
            <f7-panel id="panel-nested" theme-dark left cover container-el="#panel-page">
              <f7-page>
                <f7-block strong>
                  <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>
              <f7-row tag="p">
                <f7-col tag="span">
                  <f7-button raised fill panel-open="left"> Open left panel </f7-button>
                </f7-col>
                <f7-col tag="span">
                  <f7-button raised fill panel-open="right"> Open right panel </f7-button>
                </f7-col>
              </f7-row>
              <f7-row tag="p">
                <f7-col tag="span">
                  <f7-button raised fill panel-open="#panel-nested"> Open nested panel </f7-button>
                </f7-col>
              </f7-row>
            </f7-block>
          </f7-page>
        </f7-view>
      </f7-app>
    </template>
    <style>
    /* Limit resizable panel width */
    .panel {
      min-width: 100px;
      max-width: 90vw;
    }
    </style>