パネル Svelte コンポーネント

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

パネルコンポーネント

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

パネルプロパティ

プロパティデフォルト説明
side文字列パネルの位置。leftまたはrightです。
leftブール値side="left"のショートカットプロパティ
rightブール値side="right"のショートカットプロパティ
effect文字列パネルエフェクト。coverrevealpushのいずれかです。
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に一致するときに表示/非表示になる際にトリガーされるイベント

パネルの開閉

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

パネルインスタンスへのアクセス

.instance()コンポーネントのメソッドを呼び出すことで、初期化されたパネルインスタンスにアクセスできます。例:

<Panel bind:this={component}>...</Panel>

<script>
  let component;

  // to get instance in some method
  component.instance()
</script>

panel.svelte
<script>
  import { Navbar, Page, Block, Button, Panel, Link } from 'framework7-svelte';
</script>

<Page id="panel-page">
  <Navbar title="Panel / Side panels" />
  <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 class="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>